我刚刚开始涉足C#,我现在已经在JSON反序列化上敲了一下头。我使用的是Newtonsoft.Json库。我只期待一个字典数组的json响应
[{"id":"669","content":" testing","comments":"","ups":"0","downs":"0"}, {"id":"482","content":" test2","comments":"","ups":"0","downs":"0"}]
现在我有:(注意:下载只是一个包含json字符串的字符串)
string[] arr = JsonConvert.DeserializeObject<string[]>(download);
我尝试了很多不同的方法,每次都失败了。是否有解析此类json的标准方法?
答案 0 :(得分:16)
您有一组对象而不是字符串。创建一个映射属性的类,并反序列化为
public class MyClass {
public string id { get; set; }
public string content { get; set; }
public string ups { get; set; }
public string downs { get; set; }
}
MyClass[] result = JsonConvert.DeserializeObject<MyClass[]>(download);
JSON中只有几种基本类型,但学习和识别它们很有帮助。对象,数组,字符串等http://www.json.org/和http://www.w3schools.com/json/default.asp是开始使用的好资源。例如,JSON中的字符串数组看起来像
["One", "Two", "Three"]
答案 1 :(得分:0)
我实现了这一点,并希望这对所有人都有帮助。
var jsonResponse =
[{"Id":2,"Name":"Watch"},{"Id":3,"Name":"TV"},{"Id":4,"Name":""}]
var items = JsonConvert.DeserializeObject<List<MyClass>>(jsonResponse);
其中MyClass是实体
public class MyClass
{
public int Id { get; set; }
public string Name { get; set; }
}