需要将嵌套的json数组反序列化为服务器端数组

时间:2014-06-23 13:41:01

标签: asp.net-mvc json json.net

我有一个嵌套在JSON字符串中的对象中的数组,我需要在服务器上进行反序列化:

var orderStatus = {"auth": "xxxx", "resourceType": "order.status", "idSet": "2980", "lifecycleEvent": "modified", "objects": { "orders": [ { "id": "2980", "statusId": "6" } ] }

我使用Robert Koritnik这样的插件:

$.ajax({url: "receiveJson", type: "POST", data: $.toDictionary(orderStatus) });

我的.net类文件是:

public class orders
{ 
public string Id { get; set; }
public string statusId { get; set; }
}

public class objects
{
public orders orders { get; set; }
}

public class OrderStatus
{
public string clientName { get; set; }
public string source { get; set; }
public string auth { get; set; }
public string resourceType { get; set; }
public string idSet { get; set; }
public string lifecycleEvent { get; set; }

public objects objects { get; set; }

}

我的控制器代码是:

public JsonResult receiveJson(OrderStatus orderStatus)

所以orders对象就是数组。它可以将订单创建为对象,但订单对象中的id和status id为空。

我无法控制我将收到的JSON,它必须采用这种格式。

我是JSON和.NET MVC的新手。不知道如何将服务器端订单对象指定为数组。

1 个答案:

答案 0 :(得分:0)

通过稍微修改我的服务器端类来修复它:

    public class order
{        
    public string Id { get; set; }
    public string statusId { get; set; }
}

public class objects
{
    public List<order> orders { get; set; }
}

public class OrderStatus
{
    public string clientName { get; set; }
    public string source { get; set; }
    public string auth { get; set; }
    public string resourceType { get; set; }
    public string idSet { get; set; }
    public string lifecycleEvent { get; set; }

    public objects objects { get; set; }

}

所以&#34;命令&#34; class已更改为&#34; order&#34;。 &#34; objects.orders&#34;财产被修改为一个清单。

现在,jsondata一直被反序列化。