【发布时间】:2018-08-10 16:31:52
【问题描述】:
我的问题是我收到了这个错误
"无法将当前 JSON 对象(例如 {\"name\":\"value\"})反序列化为类型 'System.Collections.Generic.List`1[api.Controllers.Journey]',因为该类型需要正确反序列化的 JSON 数组(例如 [1,2,3])” ...当我尝试序列化我的 API json 响应时。
API 返回如下内容:
{
"Transport": [
{
"$id": "6",
"SourceID": "1",
"Context": "1",
"Id": "AMADEUS#1",
"Provider": null,
"Journey": {
"SourceID": "R1G0S0",
"Duration": "42000",
"Id": "5b6db9c6bfac4"
}
},
{
"$id": "7",
"SourceID": "1",
"Context": "1",
"Id": "AMADEUS#1",
"Provider": null,
"Journey": [
{
"SourceID": "R1G0S0",
"Duration": "42000",
"Id": "5b6db9c6bfac4"
},
{
"SourceID": "R1G0S1",
"Duration": "42000",
"Id": "5b6db9c6bsac4"
}
]
}
]
}
Journey 字段在第一个结果是一个 JObject,但在第二个结果是一个 JArray...
反序列化时出现错误:
Transport Transport = JsonConvert.DeserializeObject<Transport>(json_response);
我的班级属性:
public class Transport{
public string SourceID { get; set; }
public string Context { get; set; }
public string Id { get; set; }
public ProviderOD Provider { get; set; }
public Journey[] Journey { get; set; }
public PriceOD Price { get; set; }
}
public class Journey
{
public string Id { get; set; }
public string SourceID { get; set; }
public string Duration { get; set; }
}
我应该怎么做,动态设置 Journey[ ] 或 Journey ??
提前致谢……
【问题讨论】:
标签: c# .net json json.net json-deserialization