- jar引用
<dependency>
<groupId>net.sf.json-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 com.example.exceldemo;//替换成自己java类所在的包
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.io.*;
import java.util.*;
/**
* json数组转list<Map>
*/
public class JsonToList {
public static void main(String[] args) {
String json = readJson();
JSONArray array = JSONArray.fromObject(json);
List<Map<String, Object>> list = (List<Map<String, Object>>) translate(array);
System.out.println(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/user.json"));
reader = new InputStreamReader(inputStream, "UTF-8");
bf = new BufferedReader(reader);
sf = new StringBuffer();
String json = null;
while ((json = bf.readLine()) != null) {
sf.append(json);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
reader.close();
bf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sf.toString();
}
/**
* 将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)
list.add(translate((JSONArray) o));
else if (o instanceof JSONObject)
list.add(translate((JSONObject) o));
else
list.add(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 = json.keySet();
for (Object key : keys) {
Object o = json.get(key);
if (o instanceof JSONArray)
map.put((String) key, translate((JSONArray) o));
else if (o instanceof JSONObject)
map.put((String) key, translate((JSONObject) o));
else
map.put((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}]
版权声明:本文为qq_29988051原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。