将JSON反序列化为字符串数组

时间:2013-02-01 05:00:54

标签: c# .net json

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

2 个答案:

答案 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; }
            }