JSONファイルで、ノードからデータを抽出したいと思います。商品ノード内にあるブックノードまたは値を抽出したいとします。ここに私のJSONファイルがあります。C#のJsonファイルからノードを抽出する
JSON
{
"store":[
{
"name":"Sunshine Department Store",
"address":"Wangfujing Street",
"goods":{
"book":[
{
"category":"Reference",
"title":"Sayings of the Century",
"author":"Nigel Rees",
"price":8.88
},
{
"category":"Fiction",
"title":"Sword of Honour",
"author":"Evelyn Waugh",
"price":12.66
}
],
"bicycle":{
"type":"GIANT OCR2600",
"color":"White",
"price":276
}
}
}
]
}
コード私はこれらの線に沿ってデータを抽出するにはどうすればよい
private string ParseBookNode(JObject bookJSONFile)
{
JArray bookJson = null;
string bookFarmNode = null;
if (bookJSONFile != null && bookJSONFile["store"] != null)
{
bookJson = (JArray)bookJSONFile["store"];
bookFarmNode = bookJson[0].ToString();
if (bookJSONFile["book"] != null)
{
bookJson = (JArray)bookJSONFile["book"];
bookFarmNode = bookJson[0].ToString();
}
}
else
{
throw new Exception("Book node not found.");
}
return bookFarmNode;
}
?
if (bookJSONFile["book"] != null)
{
bookJson = (JArray)bookJSONFile["book"];
bookFarmNode = bookJson[0].ToString();
}
'bookJSONFile [" book "]'は決して存在しません。代わりに 'bookFarmNode'を調べるつもりでしたか?その場合は、最初に「商品」オブジェクトにドリルダウンする必要があります。 JSONの構造と使用している変数をより慎重に確認してください。変数をより意味のある名前にすることは、おそらくコードを整理するのに役立ちます。 – ADyson
はいダイソン、私の誤解はbookJson ["book"]です。 –
それも存在しません。あなたのデータ構造をもう一度見てください。 bookJSONは "ストア"配列になります(なぜ、私はあなたが役に立たない変数名を持っていると言ったのですか)。 bookFarmNode(文字列ではなくオブジェクトにした場合)は、その配列の最初のオブジェクトになります。次に、その中から「商品」オブジェクトを取得し、次に「商品」オブジェクト内からブック配列を取得する必要があります。 – ADyson