我有一个嵌套在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的新手。不知道如何将服务器端订单对象指定为数组。
答案 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一直被反序列化。