json配列を含むjsonオブジェクトがあります。ここではjsonオブジェクトです複数の配列を含むJSONオブジェクト
{
"dataset": {
"id": 11304240,
"dataset_code": "teste",
"database_code": "LBMA",
"name": "testse: London Fixing",
"description": "test",
"refreshed_at": "2017-03-17T16:50:32.330Z",
"newest_available_date": "2017-03-17",
"oldest_available_date": "1968-01-02",
"column_names": ["Date", "USD (AM)", "USD (PM)", "GBP (AM)", "GBP (PM)", "EURO (AM)", "EURO (PM)"],
"frequency": "daily",
"type": "Time Series",
"premium": false,
"limit": 1,
"transform": null,
"column_index": null,
"start_date": "1968-01-02",
"end_date": "2017-03-17",
"data": [
["2017-03-17", 1228.75, 1229.6, 991.85, 994.25, 1140.53, 1144.27]
["2017-03-16", 1228.79, 1228.6, 992.85, 994.25, 1140.53, 1144.27]
],
"collapse": null,
"order": null,
"database_id": 139
}
}
私は異なる文字列と二重変数にデータ配列の最初の行を抽出する必要があります。
これまでのところ私の解決策です。私はデータメッセージを取得していません。
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
JSONArray data = jsonObj.getJSONArray("data");
//JSONObject contacts = jsonArray.getJSONArray("contacts");
// looping through All Contacts
JSONArray js=data.getJSONArray(0);
for (int i = 0; i <js.length(); i++) {
JSONObject c = js.getJSONObject(i);
String id = c.getString("date");
String name = c.getString("USD (AM)");
String email = c.getString("USD (Pm)");
// tmp hash map for single contact
HashMap<String, String> contact = new HashMap<>();
// adding each child node to HashMap key => value
contact.put("date", date);
contact.put("USD (AM)", am);
contact.put("USD (PM)", pm);
// adding contact to contact list
contactList.add(contact);
}
URLから文字列としてjsonオブジェクトを取得していますが、どのように変数を抽出できますか?ここ
は私の予想結果
date = "2017-03-17"
am = 1228.75
pm = 1229.6
'データ 'に入る前に' dataset'に入る必要はありませんか? – ajb
私はまずそれに入る必要がありますか? – msafran
はい、私はそう信じています。あなたが与えたオブジェクトには、「データセット」というフィールドが1つしかありません。そのフィールドの値は、他のすべてのフィールドを持つ入れ子オブジェクトです。しかし、私は 'jsonObject'メソッドはあなたが与えたオブジェクト内のフィールドだけを見ていると思います。ネストされたフィールドを深く検索することはありません。 – ajb