1、引入jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.68</version>
</dependency>
2、代码
package util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class JsonUtil {
private List<Object> list = new ArrayList<>();
/**
*如果存在多个相同的key,本方法获取的是第一个key的值
*/
public Object getValue(String json,String key){
list.clear();
AllValue(json,key);
if (list.isEmpty()){
throw new JSONException("传入的json没有指定key的值:" + key);
}
return list.get(0);
}
/**
* 解析JSONObject 数据,返回所有的key所对应的值,存入list集合。
*/
public List<Object> getAllvalue(String json,String key){
list.clear();
return AllValue(json,key);
}
private List<Object> AllValue(Object str,String key) {
String str$ = String.valueOf(str).trim();
if (!(str$.startsWith("{") || str$.startsWith("["))) {
return null;
}
Object json$ = JSONObject.parse(str$);
if (json$ instanceof JSONObject){
foreachObj(str$,key);
}else if (json$ instanceof JSONArray){
JSONArray jsonArray2 = JSON.parseArray(str$);
for (int j = 0; j < jsonArray2.size(); j++) {
String obj = jsonArray2.getString(j);
if (obj.startsWith("[")) {
AllValue(obj,key);
} else {
foreachObj(obj,key);
}
}
}
return list;
}
private List<Object> foreachObj(String object, String key){
if (!( object.startsWith("[") || object.startsWith("{") )){
return null;
}
JSONObject object1 = JSON.parseObject(object);
for (Map.Entry<String,Object> entry : object1.entrySet()){
if (key.equals(entry.getKey())){
list.add(entry.getValue());
}
String str$ = JSON.toJSONString(entry.getValue());
AllValue(str$,key);
}
return list;
}
}