我尝试将一个来自服务的JSON响应解析为C#观测集合列表对象。该列表对象后来可以用于在XAML页面上展示。
以下是服务的响应:
[
{
"orderId": 1,
"employeeId": "6364",
"orderTime": 1517583600000,
"orderCost": 90,
"comments": null,
"orderStatus": {
"orderStatusId": 1,
"orderStatusName": "Order Placed"
},
"orderedItems": [
{
"orderItemId": 1,
"orderQuantity": 1,
"orderItemCost": 50
},
{
"orderItemId": 2,
"orderQuantity": 1,
"orderItemCost": 40
}
]
},
{
"orderId": 2,
"employeeId": "6364",
"orderTime": 1517670000000,
"orderCost": 50,
"comments": null,
"orderStatus": {
"orderStatusId": 3,
"orderStatusName": "Order Delivered"
},
"orderedItems": [
{
"orderItemId": 3,
"orderQuantity": 1,
"orderItemCost": 50
}
]
}
]
以下是模型类的代码:namespace ServiceNew
{
public class OrderStatus
{
public int orderStatusId { get; set; }
public string orderStatusName { get; set; }
}
public class OrderedItem
{
[JsonProperty("orderItemId")]
public int orderItemId { get; set; }
[JsonProperty("orderQuantity")]
public int orderQuantity { get; set; }
[JsonProperty("orderItemCost")]
public int orderItemCost { get; set; }
}
public class Order
{
[JsonProperty("orderId")]
public int orderId { get; set; }
[JsonProperty("employeeId")]
public string employeeId { get; set; }
[JsonProperty("orderTime")]
public object orderTime { get; set; }
[JsonProperty("orderCost")]
public int orderCost { get; set; }
[JsonProperty("comments")]
public object comments { get; set; }
[JsonProperty("orderStatus")]
public OrderStatus orderStatus { get; set; }
[JsonProperty("orderedItems")]
public List<OrderedItem> orderedItems { get; set; }
}
}
这项服务的运作方式如下:
public class OrderService
{
public OrderService()
{
GetJson();
}
public async void GetJson()
{
if (NetworkCheck.IsInternet())
{
var client = new System.Net.Http.HttpClient();
var response = await client.GetAsync("here is thre URL");
string orderJson = await response.Content.ReadAsStringAsync(); //Getting response
Order ObjOrderList = new Order();
if (orderJson != " ")
{
Console.WriteLine("response is"+orderJson);
//exception occurs here all the time , and I need it to be a list
ObjOrderList = JsonConvert.DeserializeObject<Order>(orderJson);
}
Console.WriteLine("obj order list is"+ObjOrderList);
}
}
}
在尝试将JSON数组反序列化为C#时做出了一些更改,但我未能成功。现在出现了一个异常,内容为
Newtonsoft.Json.JsonSerializationException: <Timeout exceeded getting exception details>
我卡在这里已经很久了,查遍了StackOverflow和Google,但都没有一个有用的解决方案。
我需要将JSON数据存储到C#对象中,并在XAML页面上以列表的形式再现相同的对象。
先行致谢!