ibu*_*ubi 3 c# json casting json.net
我有json如下,
{
"H": "Macellum",
"M": "Receive",
"A": [
{
"CustomerId": "172600",
"OrderId": "69931",
"OrderStatus": "E0",
"Buy": "A"
}
]
}
Run Code Online (Sandbox Code Playgroud)
和复杂的类型
public class OrderStats
{
public string CustomerId { get; set; }
public string OrderId { get; set; }
public string OrderStatus { get; set; }
public string Buy { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试铸造如下,
dynamic obj = JsonConvert.DeserializeObject<dynamic>(message);
OrderStats info = (OrderStats)obj.A[0]; //exception
OrderStats info = obj.A[0] as OrderStats; //info is null
Run Code Online (Sandbox Code Playgroud)
但错误如下
无法将类型'Newtonsoft.Json.Linq.JObject'转换为OrderStatus
Vik*_*hyn 15
这个怎么样?
var str = "YOUR_JSON_HERE";
var obj = JsonConvert.DeserializeObject<dynamic>(str);
OrderStats info = ((JArray)obj.A)[0].ToObject<OrderStats>();
Run Code Online (Sandbox Code Playgroud)
我找到了一个像这样有点微不足道的解决方案,
dynamic obj = JsonConvert.DeserializeObject<dynamic>(message);
OrderStats info = JsonConvert.DeserializeObject<OrderStats>(JsonConvert.SerializeObject(obj.A[0]));
Run Code Online (Sandbox Code Playgroud)