8

我刚刚开始涉足 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 的标准方法?

4

2 回答 2

20

你有一个对象数组而不是字符串。创建一个映射属性并反序列化的类,

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"]
于 2013-02-01T05:02:51.980 回答
2

我实现了这一点,希望这对所有人都有帮助。

 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; }
            }
于 2013-10-25T09:59:42.420 回答