以下是我的 JSON 数据,它恰好是 Wikidata 提供的格式,尽管为了清晰起见已大大缩减。
{
"entities": {
"Q200405": {
"id": "Q200405",
"type": "item",
"claims": "Cheese"
}
}
}
我正在尝试在 c# 中访问这些数据。我的问题是 Q200405 是动态的 - 它基本上是我正在检索的记录号。例如,另一个页面可能会给我
{
"entities": {
"Q123456": {
"id": "Q123456",
"type": "item",
"claims": "Lemon"
}
}
}
到目前为止,我最好的尝试是使用 Json.NET (Newtonsoft);
json = "{\"entities\":{\"Q200405\" {\"id\":\"Q200405\",\"type\":\"item\",\"claims\":\"Cheese\"}}}";
var Query = JsonConvert.DeserializeObject<dynamic>(json);
string entities = Query.entities.ToString();
Query = JsonConvert.DeserializeObject<dynamic>(entities);
string entity = Query.Q200405.ToString();
Query = JsonConvert.DeserializeObject<dynamic>(entity);
string id = Query.id.ToString();
string claims = Query.claims.ToString();
这可行,但显然硬编码Query.Q200405.ToString()不是理想的解决方案!我可能也不应该执行多个反序列化语句来深入研究数据?
我的问题是将上述 JSON 格式读入 ac# 程序的最佳方法是什么?