当前位置:   article > 正文

解析一个含有json对象、数组格式的数据_返回的对象是一个数组怎么解析出来

返回的对象是一个数组怎么解析出来

废话不多说,直接贴出要解析的json数据:

  1. {
  2. "requestId": "61701564-ab07-4039-b751-52548c3e315c",
  3. "success": true,
  4. "data":{
  5. "total":2,
  6. "detail": [{
  7. "id": 1,
  8. "name": "小明",
  9. "age": "15"
  10. }, {
  11. "id": 2,
  12. "name": "小刚",
  13. "age": "18",
  14. }]
  15. }
  16. }

 看似简单(数据量少),其实也不简单(结构略复杂,包含了json对象与json数组)。

如:上图中红框中的数据格式就是json对象,而其中蓝框中的数据格式又是json数组。

现在将其中所有json信息解析出来,具体参考下方代码:

  1. package com.zhicall.ladder.esb.service;
  2. import net.sf.json.JSONArray;
  3. import net.sf.json.JSONObject;
  4. import org.apache.commons.collections.bag.SynchronizedSortedBag;
  5. public class JsonParserTest {
  6. public static void main(String[] args) {
  7. String json = "{\n" +
  8. "\t\"requestId\": \"61701564-ab07-4039-b751-52548c3e315c\",\n" +
  9. "\t\"success\": true,\n" +
  10. "\t\"data\":{\n" +
  11. "\t\t\"total\":2,\n" +
  12. "\t\t\"detail\": [{\n" +
  13. "\t\t\t\"id\": 1,\n" +
  14. "\t\t\t\"name\": \"小明\",\n" +
  15. "\t\t\t\"age\": \"15\"\n" +
  16. "\t\t}, {\n" +
  17. "\t\t\t\"id\": 2,\n" +
  18. "\t\t\t\"name\": \"小刚\",\n" +
  19. "\t\t\t\"age\": \"18\",\n" +
  20. "\t\t}]\n" +
  21. "\t}\n" +
  22. "}";
  23. parseJsonInfo(json);
  24. }
  25. public static void parseJsonInfo(String json) {
  26. System.out.println("====开始解析====");
  27. JSONObject jsonObject = JSONObject.fromObject(json);
  28. String requestId = jsonObject.getString("requestId");
  29. System.out.println("\"requestId\" = " + requestId);
  30. String success = jsonObject.getString("success");
  31. System.out.println("\"success\" = " + success);
  32. String total = jsonObject.getJSONObject("data").getString("total");
  33. System.out.println("\"total\" = " + total);
  34. JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("detail");
  35. for(int i =0;i<jsonArray.size();i++){
  36. JSONObject jsonObject1 = jsonArray.getJSONObject(i);
  37. String id = jsonObject1.getString("id");
  38. System.out.println("\"id\" = " + id);
  39. String name = jsonObject1.getString("name");
  40. System.out.println("\"name\" = " + name);
  41. String age = jsonObject1.getString("age");
  42. System.out.println("\"age\" = " + age);
  43. }
  44. System.out.println("====解析结束====");
  45. }
  46. }

输出结果:

  1. ====开始解析====
  2. "requestId" = 61701564-ab07-4039-b751-52548c3e315c
  3. "success" = true
  4. "total" = 2
  5. "id" = 1
  6. "name" = 小明
  7. "age" = 15
  8. "id" = 2
  9. "name" = 小刚
  10. "age" = 18
  11. ====解析结束====

注意以上导包都是net.sf.json,不要搞错了。

getJSONObject()为获取json对象数据;

getJSONArray()为获取json数组数据;

获取指定格式数据后,getString()获取指定key对应的value值即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/197872?site
推荐阅读
相关标签
  

闽ICP备14008679号