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

Chr*_*ris 8 .net c# json

我刚刚开始涉足C#,我现在已经对JSON反序列化进行了一段时间的讨论.我正在使用Newtonsoft.Json库.我期待一个字典数组的json响应

[{"id":"669","content":" testing","comments":"","ups":"0","downs":"0"}, {"id":"482","content":" test2","comments":"","ups":"0","downs":"0"}]
Run Code Online (Sandbox Code Playgroud)

现在我有:(注意:下载只是一个包含json字符串的字符串)

string[] arr = JsonConvert.DeserializeObject<string[]>(download);
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的方法,每个方法都失败了.解析这种类型的json有标准的方法吗?

Des*_*tar 17

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

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);
Run Code Online (Sandbox Code Playgroud)

JSON中只有几种基本类型,但学习和识别它们很有帮助.对象,数组,字符串等http://www.json.org/http://www.w3schools.com/json/default.asp是很好的入门资源.例如,JSON中的字符串数组看起来像,

["One", "Two", "Three"]
Run Code Online (Sandbox Code Playgroud)

  • 别客气!除了序列化为强类型类之外,还可以使用`JObject.Parse(jsonstring)`.这将返回一个JObject,然后您可以访问类似`obj.Value <string>("content")`的属性.当然推荐强类型方法,但知道替代方案很好:) (2认同)