以下は私の 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()は理想的なソリューションではありません! データにドリルダウンするために複数の Deserialize ステートメントを実行するべきではないでしょうか?
私の質問は、上記の JSON 形式を ac# プログラムに読み込む最良の方法は何ですか?