嗨,我想帮助在JSON数据中获得value
OBJ
[
{
"type": "visitors",
"dates": [
{
"date": "2015-05-01",
"items": [
{
"value": "100"
}
]
}
]
},
{
"type": "actions",
"dates": [
{
"date": "2015-05-01",
"items": [
{
"value": "230"
}
]
}
]
},
{
"type": "actions-average",
"dates": [
{
"date": "2015-05-01",
"items": [
{
"value": "2.3"
}
]
}
]
}
]
im使用此代码获取value
,但我希望将不同的value
分配给其他变量
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String value = null;
JSONArray datesArray = jsonObject.getJSONArray("dates");
for (int j = 0; j < datesArray.length(); j++) {
JSONObject dates = datesArray.getJSONObject(j);
JSONArray itemsArray = dates.getJSONArray("items");
for (int k = 0; k < itemsArray.length(); k++) {
JSONObject vvObj = itemsArray.getJSONObject(k);
value = vvObj.getString("value");
//Log.v(TAG, "Edited JSONData: " + k + value);
}
}
values[i] = value;
//Log.v(TAG, "loop JSONData: " + Arrays.toString(values));
}
最终结果看起来像
var1 = value // form the first loop
var2 = value // form the 2nd loop
var3 = value // form the 3rd loop
尝试一下。您将'value [i] = value'放在错误的地方。它将从所有数组中获取所有值。如果您需要其他Justa SK,我将修改它。
ArrayList<String> values = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject jsonObject = jsonArray.getJSONObject(i);
String value = null;
JSONArray datesArray = jsonObject.getJSONArray("dates");
for (int j = 0; j < datesArray.length(); j++)
{
JSONObject dates = datesArray.getJSONObject(j);
JSONArray itemsArray = dates.getJSONArray("items");
for (int k = 0; k < itemsArray.length(); k++)
{
JSONObject vvObj = itemsArray.getJSONObject(k);
values.add( vvObj.getString("value") );
}
}
}
//check this part how to get back your data
String output ;
for (int i = 0; i < values.size(); i++)
{
output = values.get(i) ;
//do something with value from possition i , is stored in output
Log.v(TAG, "loop JSONData: " + output );
}
也许这会有所帮助
String[] values=new String[jsonArray.length()];
//create string array of size == jsonArray.length() outside of forloop
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
//String value = null;//comment this line
JSONArray datesArray = jsonObject.getJSONArray("dates");
for (int j = 0; j < datesArray.length(); j++) {
JSONObject dates = datesArray.getJSONObject(j);
JSONArray itemsArray = dates.getJSONArray("items");
for (int k = 0; k < itemsArray.length(); k++) {
JSONObject vvObj = itemsArray.getJSONObject(k);
value = vvObj.getString("value");
//Log.v(TAG, "Edited JSONData: " + k + value);
}
}
values[i] = value;
//Log.v(TAG, "loop JSONData: " + Arrays.toString(values));
}