json获取里面的参数,写了部分

获取json数据转换

获取到的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
然后就可以取到status值了

{"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");