【发布时间】:2020-05-02 04:50:37
【问题描述】:
我有以下 JSON 对象(对象的形状会有所不同,因此使用动态):
{
"mba$maccType": [{
"class": {
"id": 1057,
"intlId": "cacc"
},
"classA": false,
"endDate": "4712-12-31T00:00:00",
"histStatus": {
"id": 5,
"intlId": "valid"
},
"objClassif": {
"id": 74,
"intlId": "mba$macc_type"
},
"secUser": {
"id": 2
},
"startDate": "2018-12-01T00:00:00",
"timestamp": "2020-01-18T07:29:21"
}
]
}
我使用Newtonsoft.Json解析如下:
dynamic dyn = JObject.Parse(json);
我的问题是,我无法引用任何动态属性,因为包含 $ 的父属性给出了语法错误:
Console.WriteLine(dyn.mba$maccType);
如何获得“class.intlId”(即“cacc”)的值?
【问题讨论】:
-
链接的问题使用
JsonConvert.DeserializeObject<dynamic>,但它会导致相同的JObject属性名称中包含非法字符,因此答案也应该适用于您的情况。