c# - C# Json 读取数组
问题描述
我正在尝试读取 Json 中的数据,但由于某种原因我找不到我的错误。这是我正在寻找的一个例子。
{
"number": 1,
"pencil":
{
"Array": [
{
"color":
{
"red": 0,
"green": 0,
"blue": 0
},
"id": 1234
},
{
"color":
{
"red": 100,
"green": 10,
"blue": 50
},
"id": 1235
},
]
},
"something_else": 2
}
我试过这条线,但它一直在出错。
var test = JsonConvert.DeserializeObject<List<Pencil>>(jsonString);
我正在尝试获取红色、绿色蓝色值和 id,但我不知道如何。
public class Pencil
{
public List<Color> colors {get; set;}
public int id;
}
public class Color
{
public int red;
public int green;
public int blue;
}
解决方案
首先,你应该有根对象:
public class Root
{
public int number {get; set;}
public Pencil pencil {get; set;}
}
其次,您的颜色属性应命名为Array
:
public class Pencil
{
public List<Color> array {get; set;}
public int id;
}
第三,您不能反序列化为Color
,因为 jsonpencil
包含id
属性和color
对象。你应该有类似包装器的东西:
public class ColorInfo
{
public int id {get; set;}
public Color color {get; set;}
}
所以你的Pencil
:
public class Pencil
{
public int id;
public List<ColorInfo> array {get; set;} // ColorInfo instead of Color
}
最后,反序列化:
var result = JsonConvert.DeserializeObject<Root>(jsonString);
推荐阅读
- visual-studio-code - 创建语言扩展时如何添加自定义缩进规则以对齐多行代码?
- php - PHP cURL不和谐api发送消息不起作用
- node.js - found 11 high severity vulnerabilities when installing function framework on my cloud functions
- html - 是否可以在营销 html 电子邮件中包含表格/问卷?
- python - 如何在使用 regex.findall 时删除逗号?
- python-3.x - 在 Boto3 中创建新连接时指定 ConnectionProperties
- c# - 为什么将 Application_Start 设为静态方法(FxCopAnalyzer 的建议)会导致 404 错误?
- javascript - HTTP get 返回内容类型 html/text 而不是 application/json
- python - 使用 shutil.move 时出现 Python 3.8 权限错误
- python-3.x - 如何使用 Python 抓取多页表并导出到 CSV 文件?