项目中遇到 要将返回的字符串(Json格式)再转为Json格式提取其中的 键值对 ,以下总结了两种办法。
第一种
思路是 转成 JSONObject的对象
String jsonStr = "假设是Json格式的字符串";
JSONObject jsonobject = JSONObject.parseObject(jsonStr );
String s = jsonobject.getSttring("要提取的Json格式的字符串中的key值");
//如果是 Json格式的字符串里面键下还包含着键值对则用以下的方法
String jsonStr = "假设是Json格式的字符串";
JSONObject jsonobject = JSONObject.parseObject(jsonStr );
JSONObject key = jsonobject.getJSONObject("key");
String s = key.getSttring("要提取的Json格式的字符串中的key值");
第二种
思路是转成Map 或 List集合
String jsonStr = "假设是Json格式的字符串";
Map map =(Map) JSONUtil.parse(jsonStr);
Object key = map.get("key");
第三种
[{"model":["123","456","789"]}]
@RequestMapping("/send1")
public ResuktInfo task1(){
String s = "[{\"model\":[\"123\",\"456\",\"789\"]}]";
String strip = StringUtils.strip(s, "[]");
JSONObject jo = JSONObject.parseObject(new String(strip));
Object modelV = jo.get("model");
return ResuktInfo.succ("success",modelV);
}
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
参考博客
【1】java字符串转json
【2】com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject