我正在尝试遍历一个 Wikidata JSON 对象并且在某种程度上是成功的。我正在解析以下内容: http: //www.wikidata.org/wiki/Special :EntityData/Q319.json
我正在使用如下代码进行迭代:
dynamic a = JsonConvert.DeserializeObject<dynamic>(wikidata_pageContents);
foreach (dynamic entity in a.entities) {
foreach (dynamic topLevelStructure in entity.Value) {
...
这一直有效,直到我得到如下的“索赔”。
{
"mainsnak": {
"snaktype": "value",
"property": "P1036",
"datavalue": {
"value": "523.45",
"type": "string"
},
"datatype": "string"
},
"type": "statement",
"id": "Q319$5525e016-4210-bb2c-ce03-bd2dd52cca6c",
"rank": "normal"
}
我在 claim.Value 中使用以下 JSON 文本,但是 field_name 为空。
foreach (dynamic claimField in claim.Value)
{
string field_name = claimField.Name;
如何动态迭代上述对象中的值?如果可能,我宁愿迭代而不是尝试建立对象结构并反序列化。