如何在java中使用动态数组名称和密钥对读取json数组

时间:2018-01-22 07:35:02

标签: java json

{
"name1": [
    "value1"
],
"name2": [
    "value1",
    "value2",
    "value3",
    "value4",
    "value5",

],
"name3": [
    "value1"
]
}

JSON的新手。请帮我在这个文件中读取这个名字和值

1 个答案:

答案 0 :(得分:-1)

您需要提供每个数组的键,例如name1name2name3等。因此最好为名称设置限制,例如10.以下代码将解析你期望的json文件

HashMap<String, ArrayList<String>> map=new HashMap<>();
    int TOTAL_NAMES=10;
    try {
        JSONObject jsonObject=new JSONObject(json);
        for(int k=0; k<TOTAL_NAMES-1; k++) {
            String name="name"+k;
            JSONArray jsonValueArray1 = jsonObject.getJSONArray(name);
            ArrayList<String> valueList=new ArrayList<>();
            for (int i = 0; i < jsonValueArray1.length(); i++) {
                valueList.add(jsonValueArray1.getString(i));
            }
            map.put(name, valueList);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }