我有一个JSON文件
{
"msg": "ACTIVITY DATA found",
"data": {
"USTUDENT8": 0,
"USTUDENT7": 0,
"USTUDENT6": 0,
"USTUDENT5": 0,
"USTUDENT4": 0,
"USTUDENT3": 0,
"USTUDENT2": 0,
"UTEACHER": 0,
"EVERYONE": 2
}
}
由此我需要特别获得每个人的价值。
@Override
public void response(JSONObject jsonObject) throws JSONException {
List<String> allNames = new ArrayList<String>();
JSONArray arrayObject = jsonObject.getJSONArray("data");
for (int i = 0; i < arrayObject.length(); i++) {
JSONObject dataObject = arrayObject.getJSONObject(i);
message = dataObject.getString("EVERYONE");
allNames.add(message);
Log.d("Message", message);
}
}
答案 0 :(得分:2)
试试这个
@Override
public void response(JSONObject jsonObject) throws JSONException {
List<String> allNames = new ArrayList<String>();
try {
JSONObject data = jsonObject.getJSONObject("data");
message = data.getString("EVERYONE");
allNames.add(message);
} catch (JSONException e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
尝试以下代码
JSONObject arrayObject = jsonObject.getJSONObject("data");
message = arrayObject.getString("EVERYONE");
allNames.add(message);
Log.d("Message", message);
答案 2 :(得分:0)
1。您正在尝试使用JSONObject
获取“数据”jsonObject.getJSONArray("data")
,这是完全错误的。使用jsonObject.getJSONObject("data")
获取“数据”JSONObject
。
2。由于EVERYONE
的值为integer
,因此请使用dataObject.getInt("EVERYONE")
代替dataObject.getString("EVERYONE")
来获取EVERYONE
的值1}}。
更新您的代码,如下所示:
.........
................
List<String> allNames = new ArrayList<String>();
try {
JSONObject jsonObject = new JSONObject(result);
JSONObject dataObject = jsonObject.getJSONObject("data");
int everyone = dataObject.getInt("EVERYONE");
Log.d("SUCCESS", "EVERYONE: " + everyone);
} catch (JSONException e) {
e.printStackTrace();
}
.......
...................
<强>输出:强>
D/SUCCESS: EVERYONE: 2
希望这会有所帮助〜