- 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}]