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

本文关键字:字符串 数组 反序列化 JSON | 更新日期: 2023-09-27 17:56:51

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

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

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

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"]

我实现了这个,希望这对大家有帮助。

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