json数组转换成list map

时间:2025-03-21 21:23:04
  • jar引用
<dependency>
    <groupId>-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>
  • json数据
[{
  "address": "北京",
  "sex": "女",
  "name": "小丽",
  "age": "23"
}, {
  "address": "西安",
  "sex": "女",
  "name": "张三",
  "age": "20"
}, {
  "address": "广州",
  "sex": "男",
  "name": "小王",
  "age": "2"
}, {
  "address": "广州",
  "sex": "男",
  "name": "王五",
  "age": "27"
}, {
  "address": "厦门",
  "sex": "男",
  "name": "小王",
  "age": "29"
}, {
  "address": "北京",
  "sex": "女",
  "name": "小丽",
  "age": "23"
}]
  • 完整代码
package ;//替换成自己java类所在的包

import ;
import ;
import .*;
import .*;

/**
 * json数组转list<Map>
 */
public class JsonToList {
    public static void main(String[] args) {
        String json = readJson();
        JSONArray array = (json);
        List<Map<String, Object>> list = (List<Map<String, Object>>) translate(array);
        (list);
    }

    /**
     * 读取json文件
     * @return
     */
    public static String readJson(){
        FileInputStream inputStream = null;
        InputStreamReader reader = null;
        BufferedReader bf = null;
        StringBuffer sf = null;
        try {
            inputStream = new FileInputStream(new File("src/main/resources/static/json/"));
            reader = new InputStreamReader(inputStream, "UTF-8");
            bf = new BufferedReader(reader);
            sf = new StringBuffer();
            String json = null;
            while ((json = ()) != null) {
                (json);
            }
        } catch (Exception e) {
            ();
        } finally {
            try {
                ();
                ();
                ();
            } catch (IOException e) {
                ();
            }
        }
        return ();
    }
    /**
     * 将JSONArray对象转换成List集合
     *
     * @param json
     * @return
     * @see
     */
    public static Object translate(JSONArray json) {
        List<Object> list = new ArrayList<Object>();
        for (Object o : json) {
            if (o instanceof JSONArray)
                (translate((JSONArray) o));
            else if (o instanceof JSONObject)
                (translate((JSONObject) o));
            else
                (o);
        }
        return list;
    }

    /**
     * 将JSONObjec对象转换成Map集合
     *
     * @param json
     * @return
     * @see
     */
    public static HashMap<String, Object> translate(JSONObject json) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        Set keys = ();
        for (Object key : keys) {
            Object o = (key);
            if (o instanceof JSONArray)
                ((String) key, translate((JSONArray) o));
            else if (o instanceof JSONObject)
                ((String) key, translate((JSONObject) o));
            else
                ((String) key, o);
        }
        return map;
    }

}
  • 输出

[{address=北京, sex=女, name=小丽, age=23}, {address=西安, sex=女, name=张三, age=20}, {address=广州, sex=男, name=小王, age=2}, {address=广州, sex=男, name=王五, age=27}, {address=厦门, sex=男, name=小王, age=29}, {address=北京, sex=女, name=小丽, age=23}]