0
私はC++には全く新しいので、jsoncppを使用して天気を配列から取り出そうとしています。JSON配列の天気を取得する
JSON文字列は次のようになります。
{"coord":{"lon":139,"lat":35},
"sys":{"country":"JP","sunrise":1369769524,"sunset":1369821049},
"weather":[{"id":804,"main":"clouds","description":"overcast clouds","icon":"04n"}],
"main":{"temp":289.5,"humidity":89,"pressure":1013,"temp_min":287.04,"temp_max":292.04},
"wind":{"speed":7.31,"deg":187.002},
"rain":{"3h":0},
"clouds":{"all":92},
"dt":1369824698,
"id":1851632,
"name":"Shuzenji",
"cod":200}
は、JSON配列が正常に動作解析、ここに関連するコードです:
Json::Value root;
Json::Reader reader;
bool parsingSuccessful = reader.parse(data.c_str(), root);
if (!parsingSuccessful)
{
std::cout << "Failed to parse"
<< reader.getFormattedErrorMessages();
return 0;
}
std::cout << root.get("description", "n/a").asString() << std::endl;
しかし、私はまだn/a
で終わります。私は "weather"配列の "description"フィールドにアクセスしたいと思っています。これどうやってするの?
ルートには「説明」フィールドがありません。 'root.get(" weather ")'の最初の要素はそれを持つ必要があります。 –
@ Frederik.Lええ、私はそれを試みました。しかし、どうすれば "天気予報"の "記述"を具体的に指定できますか? – Chud37
まったく同じユースケースではありませんが、これを確認してください:http://stackoverflow.com/questions/27902576/jsoncpp-find-object-in-array-by-matching-value –