用fastjson解析嵌套json数据

本文介绍了一段JSON数据的结构及其使用Fastjson解析的方法。包括如何从JSON中获取城市信息及生活指数,并通过示例代码展示了具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 
  1. json数据类似:

     

    
     
    1. {

    2. "code": 0,

    3. "data": {

    4. "city": {

    5. "cityId": 284609,

    6. "counname": "中国",

    7. "name": "东城区",

    8. "pname": "北京市"

    9. },

    10. "liveIndex": {

    11. "2016-09-01": [

    12. {

    13. "day": "2016-09-01",

    14. "desc": "建议用露质面霜打底,水质无油粉底霜,透明粉饼,粉质胭脂。",

    15. "name": "化妆指数",

    16. "status": "控油"

    17. },

    18. {

    19. "day": "2016-09-01",

    20. "desc": "感冒容易发生,少去人群密集的场所有利于降低感冒的几率。",

    21. "name": "感冒指数",

    22. "status": "易发"

    23. },

    24. {

    25. "day": "2016-09-01",

    26. "desc": "洗车后,可保持2天车辆清洁,比较适宜洗车。",

    27. "name": "洗车指数",

    28. "status": "较适宜"

    29. },

    30. {

    31. "day": "2016-09-01",

    32. "desc": "易感人群应适当减少室外活动。",

    33. "name": "空气污染扩散指数",

    34. "status": "中"

    35. },

    36. {

    37. "day": "2016-09-01",

    38. "desc": "天气较热,衣物精干简洁,室内酌情添加空调衫。",

    39. "name": "穿衣指数",

    40. "status": "热"

    41. },

    42. {

    43. "day": "2016-09-01",

    44. "desc": "辐射较弱,涂擦SPF12-15、PA+护肤品。",

    45. "name": "紫外线指数",

    46. "status": "弱"

    47. },

    48. {

    49. "day": "2016-09-01",

    50. "desc": "天气较好,且紫外线辐射不强,适宜户外运动。",

    51. "name": "运动指数",

    52. "status": "适宜"

    53. },

    54. {

    55. "day": "2016-09-01",

    56. "desc": "气压小幅波动,可能会影响鱼儿的进食。",

    57. "name": "钓鱼指数",

    58. "status": "较适宜"

    59. }

    60. ]

    61. }

    62. },

    63. "msg": "success",

    64. "rc": {

    65. "c": 0,

    66. "p": "success"

    67. }

    68. }

    先导入fastjson依赖:

     

     

    
     
    1. <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->

    2. <dependency>

    3. <groupId>com.alibaba</groupId>

    4. <artifactId>fastjson</artifactId>

    5. <version>1.2.33</version>

    6. </dependency>


    java拿出需要的数据:

     

     

    
     
    1. public static City getCity(String json){

    2. JSONObject jsonObject = (JSONObject) JSONObject.parseObject(json)

    3. .getJSONObject("data")

    4. .getJSONObject("city");

    5. City city = new City();

    6. city.setCityId(Integer.parseInt(String.valueOf(jsonObject.get("cityId"))));

    7. city.setCityName((String) jsonObject.get("pname"));

    8. city.setCunName((String)jsonObject.get("counname"));

    9. city.setDistrictName((String)jsonObject.get("name"));

    10. return city;

    11. }

    12.  
    13. public static List<Life> getLife(String lifeJson){

    14. List list = new ArrayList();

    15. JSONObject jsonObject = (JSONObject) JSONObject.parseObject(lifeJson)

    16. .getJSONObject("data")

    17. .getJSONObject("liveIndex");

    18. JSONArray jsonArray = jsonObject.getJSONArray(getFormatDate());

    19. for(int i = 0; i < 8; i++){

    20. Life life = new Life();

    21. life.setDay(new Date());

    22. life.setDesc(jsonArray.getJSONObject(i).getString("desc"));

    23. life.setName(jsonArray.getJSONObject(i).getString("name"));

    24. life.setStatus(jsonArray.getJSONObject(i).getString("status"));

    25. life.setCity(getCity(lifeJson));

    26. list.add(life);

    27. }

    28. return list;

    29. }

     

     

     

    文章标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值