待解析的Json格式的字符串:
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{},"values":[[1548670504.832,"0.0507097837748006"]]}]}}
调整格式后:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//取出data层的数据
String jsonData = JSON.parseObject(result).getString("data");
//取出result层的数据
String jsonResult = JSON.parseObject(jsonData).getString("result");
JSONArray resultArray = JSONArray.parseArray(jsonResult);
JSONObject jo = resultArray.getJSONObject(0);
String jsonValues = jo.getString("values");
//将得到的values转换成数组
JSONArray valuesArray = JSONArray.parseArray(jsonValues);
1、遇到[]
形式的数据格外注意,表示数组,处理方式为JSONArray.parseArray
。根据集合得到第一个元素:由resultArray.getJSONObject(0);
返回JSONObject
2、遇到{}
形式的数据表示Map。在根据键getString
前需要将格式转换为JSONObject
。