如何使用Android中的HASH MAP从JSON文件中获取特定值?

时间:2017-05-31 06:11:57

标签: android arraylist hashmap

我有一个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);
    }
}

3 个答案:

答案 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

希望这会有所帮助〜