繁体   English   中英

如何反序列化带有数组的json对象c#

[英]how to deserialize json object with arrays in it c#

我的对象看起来像那样

{"Items":[{number:8468},{}],

 "count":2}

我需要以项目 1 的数量为例

我的代码就是这样,它不起作用

var content = await response.Content.ReadAsStringAsync();
var myObject = JsonConvert.DeserializeObject<ICollection<ViewModel>>(content);

这里的 JSON 代表一个对象,而不是一个集合——也就是说:外部节点是{} ,而不是[] 因此,创建一个反映以下内容的类型:

public class Foo {
    public List<Bar> Items {get;} = new List<Bar>();
    [JsonProperty("count")]
    public int Count {get;set;}
}
public class Bar {
    [JsonProperty("number")]
    public int Number {get;set;}
}

并使用:

var myObject = JsonConvert.DeserializeObject<Foo>(content);

这里你有一个 json 对象而不是 json 数组。 所以你的逻辑失败了。 所以首先创建一个这样的模型:

public class Response {

    public List<Item> Items {get;set;} = new List<Item>();
    public int Count {get;set;}
}

public class Item {
    public int Number {get;set;}
}

并替换:

var myObject = JsonConvert.DeserializeObject<ICollection<ViewModel>>(content);

var result = JsonConvert.DeserializeObject<Response>(content);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM