一.需求:获取Json字符串中的某个字段值
二.实现代码
public class test {
private static String COMPLEX_JSON_STR = "{\"status\":\"OK\",\"request_id\":\"159227615319652307143355\",\"result\":{\"searchtime\":0.064872,\"total\":1,\"num\":1,\"viewtotal\":1,\"compute_cost\":[{\"index_name\":\"VidService\",\"value\":0.29}],\"items\":[{\"fields\":{\"vid\":\"607247139647\",\"index_name\":\"VidService\"},\"property\":{},\"attribute\":{},\"variableValue\":{},\"sortExprValues\":[\"10000\"]}],\"facet\":[]},\"errors\":[],\"tracer\":\"\",\"ops_request_misc\":\"%7B%22request%5Fid%22%3A%22159227615319652307143355%22%2C%22scm%22%3A%221.120655746..%22%7D\"}";
public static void main(String[] args) {
JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);
JSONObject result = jsonObject.getJSONObject("result");
JSONArray items = result.getJSONArray("items");
for (int i = 0; i < items.size();i++){
JSONObject item = items.getJSONObject(i);
JSONObject fields = item.getJSONObject("fields");
System.out.println(fields.get("vid"));
}
}
}
三.知识点
- JSONObject的数据是用 { } 来表示的;
- JSONArray由JSONObject构成的数组,用 [ { } , { } , ...... , { } ] 来表示的 ;
- 区别:一个最外面用的是 { } ,一个最外面用的是 [ ];
- 从JSONArray中获得JSONObject对象:JSONObject jsonObject = jsonArray.getJSONObject(i);
- 获取JSON里面的数据:jsonObject.get( "id" ) ;