使用Json.NET库时,我在反序列化返回的一些json数组时遇到了麻烦。该json是一个包含对象和国家对象数组的分页信息数组。以下是返回的json示例:
我正在尝试将以下类型反序列化:
我这样调用DeserializeObject:
我遇到了以下错误:
无法将当前的JSON对象(例如{"name":"value"})反序列化为类型“CountriesQueryResults”,因为该类型需要一个JSON数组(例如[1,2,3])才能正确反序列化。
我一直在尝试从文档中获取答案,但似乎无法找到解决方法。任何帮助都将不胜感激。
[
{
"page": 1,
"pages": 6,
"per_page": "50",
"total": 262
},
[
{
"id": "ABW",
"iso2Code": "AW",
"name": "Aruba",
"region": {
"id": "LCN",
"value": "Latin America & Caribbean (all income levels)"
},
"adminregion": {
"id": "",
"value": ""
},
"incomeLevel": {
"id": "NOC",
"value": "High income: nonOECD"
},
"lendingType": {
"id": "LNX",
"value": "Not classified"
},
"capitalCity": "Oranjestad",
"longitude": "-70.0167",
"latitude": "12.5167"
}
]
]
我正在尝试将以下类型反序列化:
class CountriesQueryResults
{
public PagingInfo PageInfo { get; set; }
public List<CountryInfo> Countries { get; set; }
}
class PagingInfo
{
public int Page { get; set; }
public int Pages { get; set; }
[JsonProperty("per_page")]
public int ResultsPerPage { get; set; }
public int Total { get; set; }
}
class CountryInfo
{
public string Id { get; set; }
public string Iso2Code { get; set; }
public string Name { get; set; }
public string Longitude { get; set; }
public string Latitude { get; set; }
public string CapitalCity { get; set; }
public CompactIdentifier Region { get; set; }
public CompactIdentifier AdminRegion { get; set; }
public CompactIdentifier IncomeLevel { get; set; }
public CompactIdentifier LendingType { get; set; }
}
class CompactIdentifier
{
public string Id { get; set; }
public string Value { get; set; }
}
我这样调用DeserializeObject:
var data = JsonConvert.DeserializeObject<List<CountriesQueryResults>>(response);
我遇到了以下错误:
无法将当前的JSON对象(例如{"name":"value"})反序列化为类型“CountriesQueryResults”,因为该类型需要一个JSON数组(例如[1,2,3])才能正确反序列化。
我一直在尝试从文档中获取答案,但似乎无法找到解决方法。任何帮助都将不胜感激。