【发布时间】:2020-09-18 10:42:19
【问题描述】:
我有一个json 文件,它具有以下任一格式:
- 样品 1:
{
"MyOrders": [
{
"order": "my order1",
"url": "tt"
}
]
}
示例 2:
{
"MyOrders": [
[
{
"order": "my order 1",
"url": "ddfdfd"
},
{
"order": "order 2",
"url": "asdfwe"
}
],
[
{
"order": "my order 3",
"url": "ertrt"
},
{
"order": "my order 4",
"url": "werwe"
}
]
]
}
我有以下代码:
InputItems root = JsonConvert.DeserializeObject<InputItems>(myJsonText);
我有以下课程:
public class InputItems
{
[JsonProperty("MyOrders")]
public List<Order> objects { get; set; }
}
public class Order
{
[JsonProperty("order")]
public string order{ get; set; }
[JsonProperty("url")]
public string url { get; set; }
}
但它只适用于第一种情况。如何改进它以涵盖第二种示例格式?
提前致谢。
【问题讨论】:
-
你不必顺便引用你的 JSON(> 前缀)
-
如果您仔细查看“示例 2”JSON,您会注意到您没有订单数组 - 您有一个或多个订单数组。因此,在 .NET 中,这将是一个订单列表,而不仅仅是一个订单列表。至于如何使用相同的代码反序列化它们,我可能会创建一个
JsonConverter以应用于List<Order>,然后让它解决JToken是JObject或JArray并反序列化因此。以后有时间我会帮忙的。