获取到的json数据
{"code":200,
"data":[{"status":2}],
"status":"success"}
现在需要单独把,"status":2 获取出来
Map<String,Object> cmdb = new HashMap<String, Object>();
Map<String,String> headers = new HashMap<>();
HttpUtils.HttpServiceResponse cmdbResponse = null;
String cmdbParam = JSONUtils.toJSON(cmdb);
cmdbResponse = HttpUtils.post(cmdbUrl, headers, cmdbParam);
String data= cmdbResponse.getResponseText();
Map<String,String> taskMap = (Map) JSON.parse(data);
data:数据
{"code":200,
"data":[{"status":2}],
"status":"success"}
taskMap:参数
taskMap = {JSONObject@16874} size = 3
"code" -> {Integer@16882} 200
"data" -> {JSONArray@16883} size = 1
key = "data"
value = {JSONArray@16883} size = 1
0 = {JSONObject@16891} size = 36
"status" -> {Integer@16991} 2
"status" -> "success"
上面是我的解答思路,但是写到最后,下面不知道怎么获取值了,求解答
"status":2 单独求出来。
1.先转换为Map
2.从Map获取data
3.注意,此时data的数据需要再转换为List
{"code":200,
"data":[{"status":2}],
"status":"success"} 这个应该写成一个数据返回对象,比如叫ResultModel ;
1、返回结果 json 转为 ResultModel,比如fastJson 的 JSONobject.parse
2、判断code是否200;取出 data,转为 Map<String,Integer>
3、map.get(status) 取出值 2
思路
1、先把json字符串转JSONObject
2、获取data集合(数组)
3、因为data数组只有一个元素,直接get(0),并转JSONObject
4.通过JSONObject的getInteger()方法获取status值
一行代码搞定
String json=" {"code":200,\n" +
" "data":[{"status":2}],\n" +
" "status":"success"}";
Integer status = JSONObject.parseObject(json).getJSONArray("data").getJSONObject(0).getInteger("status");