前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fastjson解析嵌套Map例子

Fastjson解析嵌套Map例子

作者头像
我是攻城师
发布2018-05-14 16:49:31
1.8K0
发布2018-05-14 16:49:31
举报
文章被收录于专栏:我是攻城师

由于在实际工作中使用fastjson解析嵌套map的场景非常多,所以在此备忘一下: 引入阿里的fastjson的pom:

Java代码

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>fastjson</artifactId>
  4. <version>1.2.15</version>
  5. </dependency>

一个比较复杂的json例子:

Java代码

  1. {
  2. "actId": "1800025",
  3. "originCode": 1,
  4. "role": "TEACHER",
  5. "time": 1471077017804,
  6. "userId": "1111",
  7. "userName": "测试教师",
  8. "userIcon": "xyz",
  9. "userIp": "1.1.1.1",
  10. "countyId": "370105",
  11. "countyName": "天桥区",
  12. "schoolId": "1234",
  13. "schoolName": "测试小学",
  14. "data": {
  15. "subjectId": "020",
  16. "subjectName": "数学",
  17. "uploadFileList": [
  18. {
  19. "teachFileType": "1",
  20. "custom": "xtz"
  21. },
  22. {
  23. "teachFileType": "1"
  24. }
  25. ]
  26. }
  27. }

使用fastjson的解析代码:

Java代码

  1. import com.alibaba.fastjson.JSON;
  2. import java.util.List;
  3. import java.util.Map;
  4. /**
  5. * Created by Administrator on 2016/8/12.
  6. */
  7. public class ParserJson {
  8. /***
  9. *
  10. * @param map 需要打印的Map结构
  11. */
  12. public static void showMap(Map<String,Object> map){
  13. for(Map.Entry<String,Object> kv:map.entrySet()){
  14. System.out.println(kv.getKey()+" "+kv.getValue());
  15. }
  16. }
  17. public static void main(String[] args) throws Exception {
  18. String json="{\"actId\":\"2300003\",\"originCode\":1,\"role\":\"TEACHER\"" +
  19. ",\"time\":1470126407000,\"userId\":\"1111\",\"userName\":\"测试教师\",\"userIcon\":\"xyz\",\"userIp\":\"1.1.1.1\",\"countyId\":\"370105\",\"countyName\":\"天桥区\",\"schoolId\":\"1234\",\"schoolName\":\"测试小学\",\"data\":{\"subjectId\":\"020\",\"subjectName\":\"数学\"," +
  20. "\"uploadFileList\":[{\"teachFileType\":\"1\"},{\"teachFileType\":\"1\",\"custom\":\"xt\"},{\"teachFileType\":\"1\"}]}}";
  21. Map<String,Object> map=(Map)JSON.parse(json);
  22. System.out.println("打印第一层map");
  23. showMap(map);
  24. Map<String,Object> dataMap=(Map<String, Object>) map.get("data");
  25. System.out.println("打印第二层map");
  26. showMap(dataMap);
  27. System.out.println("打印第三层list+map");
  28. List<Map<String,Object>> fileList= (List<Map<String, Object>>) dataMap.get("uploadFileList");
  29. for(Map<String,Object> soj:fileList){
  30. System.out.println(soj);
  31. Map<String,Object> detailData=soj;
  32. showMap(detailData);
  33. System.out.println("----------------------------------------");
  34. }
  35. }
  36. }

解析结果:

Java代码

  1. ParserJson
  2. 打印第一层map
  3. role TEACHER
  4. data {"uploadFileList":[{"teachFileType":"1"},{"custom":"xt","teachFileType":"1"},{"teachFileType":"1"}],"subjectId":"020","subjectName":"数学"}
  5. actId 2300003
  6. userName 测试教师
  7. userId 1111
  8. countyId 370105
  9. schoolId 1234
  10. userIp 1.1.1.1
  11. originCode 1
  12. time 1470126407000
  13. userIcon xyz
  14. schoolName 测试小学
  15. countyName 天桥区
  16. 打印第二层map
  17. uploadFileList [{"teachFileType":"1"},{"custom":"xt","teachFileType":"1"},{"teachFileType":"1"}]
  18. subjectId 020
  19. subjectName 数学
  20. 打印第三层list+map
  21. {"teachFileType":"1"}
  22. teachFileType 1
  23. ----------------------------------------
  24. {"custom":"xt","teachFileType":"1"}
  25. custom xt
  26. teachFileType 1
  27. ----------------------------------------
  28. {"teachFileType":"1"}
  29. teachFileType 1
  30. ----------------------------------------
  31. Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是攻城师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档