c# - 将json字符串反序列化为变量
问题描述
我得到这个我需要反序列化的 json 返回:
{
"odata.metadata":"http://ausmtsapp01.epicorsaas.com/SaaS203/api/v1/BaqSvc/cLotInfo/$metadata#Epicor.DynamicQuery.QueryResults&$select=PartLot_PartLotDescription,PODetail_LineDesc",
"value":[
{
"PartLot_PartLotDescription":"SL1900301122019",
"PODetail_LineDesc":"Angle - Steel - A36 - Plain Finish - 3\" x 3\" x 3/8\" x 20' Lg."
}
]
}
我有这段代码可以将 PODetail_LineDesc 部分反序列化为一个变量,并且我不断得到空返回。我究竟做错了什么?
dynamic jsonDe = JsonConvert.DeserializeObject(response.Content);
string PODetail_LineDesc = jsonDe.PODetail_LineDesc;
frmDescription.Text = PODetail_LineDesc;
解决方案
这是如何:
string PODetail_LineDesc = jsonDe.value[0].PODetail_LineDesc;
您有一个由两个属性组成的动态对象:odata.metadata
和value
。value
是一个数组。所以要访问PODetail_LineDesc property
你需要先访问value
数组。这是完成的,value[0]
因为您只有 1 个元素。
根据您的示例,只有一个元素的索引为 0。如果元素更多,则它们的索引为 1、2、3 等等。
通常从数组中获取多个值是通过某种循环来完成的。for
, foreach
,while
是最常见的。
推荐阅读
- go - 当我在 Windows 10 中执行使用键盘控制 dji tello 无人机的 go 文件时发生错误
- sql - Postgresql 布尔类型的无效输入语法:“null”
- android - 在 Adobe XD 中模糊边缘锐利的形状,但在现实中并非如此
- jquery - 在父元素周围包裹锚标记
- android - 单击对话框按钮时如何刷新recyclerview?
- php - Wordpress - 向添加后面板添加其他功能?
- reporting-services - 参数显示
- ios - 如何在 Object Mapper for Swift 上解析数组对象
- c++ - 如何将 CPLEX 线性优化从 Matlab 移植到 C++
- javascript - 搜索功能不会在输入值为 null 时重置