我阅读了很多关于JSON到C#转换的文章,但我有一个特定的问题。我尝试使用以下代码行将JSON从Http响应转换为NewsResult类型的C#对象:
var newsResult = await response.Content.ReadAsAsync<NewsResult>();
此代码适用于大多数情况,并自动将JSON数据映射到C#对象的层次结构,但在一种情况下,REST返回以下JSON:
{
"result": {
"1": {
"id": 1,
"title": "title01"
},
"2": {
"id": 2,
"title": "title02"
},
...
生成的C#类应该如下所示
public class NewsResult
{
public ICollection<News> Result { get; set; }
}
我无法自动将此JSON映射到某个C#对象层次结构。你有什么想法请问如何解决这个问题?我更喜欢我提到的C#代码,但如果需要它我会尝试另一种方法。还有一个信息:我无法更改REST服务。谢谢。
答案 0 :(得分:2)
这应该有效
HttpClient c = new HttpClient();
var response = await c.GetAsync(yoururl);
var newsResult = await response.Content.ReadAsAsync<NewsResult>();
public class NewsResult
{
public Dictionary<string, Item> result { set; get; }
}
public class Item
{
public string id { set; get; }
public string title { set; get; }
}