文档章节

Fastjson解析嵌套Map例子

九劫散仙
 九劫散仙
发布于 2016/08/15 10:30
字数 396
阅读 141
收藏 2

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

引入阿里的fastjson的pom:

     <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.15</version>
</dependency>

一个比较复杂的json例子:

{
    "actId": "1800025", 
    "originCode": 1, 
    "role": "TEACHER", 
    "time": 1471077017804, 
    "userId": "1111", 
    "userName": "测试教师", 
    "userIcon": "xyz", 
    "userIp": "1.1.1.1", 
    "countyId": "370105", 
    "countyName": "天桥区", 
    "schoolId": "1234", 
    "schoolName": "测试小学", 
    "data": {
        "subjectId": "020", 
        "subjectName": "数学", 
        "uploadFileList": [
            {
                "teachFileType": "1", 
                "custom": "xtz"
            }, 
            {
                "teachFileType": "1"
            }
        ]
    }
}

使用fastjson的解析代码:

import com.alibaba.fastjson.JSON;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2016/8/12.
 */
public class ParserJson {

    /***
     *
      * @param map 需要打印的Map结构
     */
    public static void showMap(Map<String,Object> map){
        for(Map.Entry<String,Object> kv:map.entrySet()){
            System.out.println(kv.getKey()+"  "+kv.getValue());
        }
    }

    public static void main(String[] args) throws Exception {

        String json="{\"actId\":\"2300003\",\"originCode\":1,\"role\":\"TEACHER\"" +
                ",\"time\":1470126407000,\"userId\":\"1111\",\"userName\":\"测试教师\",\"userIcon\":\"xyz\",\"userIp\":\"1.1.1.1\",\"countyId\":\"370105\",\"countyName\":\"天桥区\",\"schoolId\":\"1234\",\"schoolName\":\"测试小学\",\"data\":{\"subjectId\":\"020\",\"subjectName\":\"数学\"," +
                "\"uploadFileList\":[{\"teachFileType\":\"1\"},{\"teachFileType\":\"1\",\"custom\":\"xt\"},{\"teachFileType\":\"1\"}]}}";


        Map<String,Object> map=(Map)JSON.parse(json);
        System.out.println("打印第一层map");
        showMap(map);
        Map<String,Object> dataMap=(Map<String, Object>) map.get("data");
        System.out.println("打印第二层map");
        showMap(dataMap);
        System.out.println("打印第三层list+map");
       List<Map<String,Object>> fileList= (List<Map<String, Object>>) dataMap.get("uploadFileList");
        for(Map<String,Object> soj:fileList){
            System.out.println(soj);
            Map<String,Object> detailData=soj;
            showMap(detailData);
            System.out.println("----------------------------------------");
        }

    }


}

解析结果:

ParserJson
打印第一层map
role  TEACHER
data  {"uploadFileList":[{"teachFileType":"1"},{"custom":"xt","teachFileType":"1"},{"teachFileType":"1"}],"subjectId":"020","subjectName":"数学"}
actId  2300003
userName  测试教师
userId  1111
countyId  370105
schoolId  1234
userIp  1.1.1.1
originCode  1
time  1470126407000
userIcon  xyz
schoolName  测试小学
countyName  天桥区
打印第二层map
uploadFileList  [{"teachFileType":"1"},{"custom":"xt","teachFileType":"1"},{"teachFileType":"1"}]
subjectId  020
subjectName  数学
打印第三层list+map
{"teachFileType":"1"}
teachFileType  1
----------------------------------------
{"custom":"xt","teachFileType":"1"}
custom  xt
teachFileType  1
----------------------------------------
{"teachFileType":"1"}
teachFileType  1
----------------------------------------

Process finished with exit code 0

© 著作权归作者所有

共有 人打赏支持
九劫散仙
粉丝 263
博文 175
码字总数 189625
作品 0
海淀
FastJson 1.2.16 和 1.1.53.android 发布

FastJson 1.2.16 和 1.1.53.android 发布了。 1.1.53.android版本暂无相关改进说明,可查看提交记录,了解更多该版本信息。 1.2.16版本改进日志如下: Bug Fixed 修复List字段存在特别字符并...

oschina
2016/08/15
3K
4
还原json循环引用对象的一种办法

后端数据实体都是由hibernate生成的,与浏览器客户端交互json时,采用了alibaba FastJson库。 首先要说fastJson的确为众多json类库中数一数二的,api简单易用,性能强悍,测试完整,典型的国...

Spance
2013/08/02
7.4K
8
json处理,json、object的相互转化

用 FastJson将Json转换Bean ,用Jackson或Gson将Bean 转FastJson 要求能够支持获取Object中的Object,即支持深层嵌套的Object解析,此外json、Object间的相互转换要快速。 参考:各个JSON技术...

刘阳0292
2017/07/09
0
0
fastjson 对象多层嵌套

今天看了一下fastjson的系列化和反系列化的例子, 都是一层对象嵌套: 例如Group 包含 User。 我想问的是fastjson支持多层对象嵌套的系列化和反系列化吗, 例如:Group 包含 User, User包含C...

孤独人
2014/02/21
8.8K
4
FastJSON 简介及其Map/JSON/String 互转

在日志解析,前后端数据传输交互中,经常会遇到 String 与 map、json、xml 等格式相互转换与解析的场景,其中 json 基本成为了跨语言、跨前后端的事实上的标准数据交互格式。应该来说各个语言...

浮躁的码农
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring-boot | 日志

引言 好久不见,都还好吗? 大家都知道,我一般都是带来实用的东西,这次也一样,我们来试试项目开发中的日志处理。 理论知识 1、为什么要用日志?你是否因为项目出现问题,查找日志文件定位...

成都_小冯同学
19分钟前
0
0
dubbo下的补偿实现(一)

背景 由于前面几篇文章涉及的问题 分布式事务的思考 在我们微服务的场景下 各种本地事务都没有办法控制的很好。 A服务调用B服务 当B服务成功提交之后 A发生了异常 这种情况下要如何处理呢??...

Mr_Qi
28分钟前
2
0
HTML显示json字符串并且进行格式化

通过pre标签进行格式化展示,使用JSON.stringify()方法转换。 代码如下:   <html> <head> <title>HTML显示json字符串并且进行格式化</title> </head> <body> <p id="show_p">{ "name": "B......

writeademo
48分钟前
0
0
LNMP——php-fpm

php-fpm的pool •vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加include并删除我们之前www池子 • include = etc/php-fpm.d/*.conf • mkdir /usr/local/php/etc/php-fpm.d/ • ......

chencheng-linux
52分钟前
0
0
TensorFlow layers slim 模块搭建cnn对mnist分类,比较bn效果

shape变化 (?, 784)(?, 28, 28, 1)(?, 14, 14, 8)(?, 7, 7, 8)(?, 1, 1, 8)(?, 8)(?, 10) 结果对比,基本上还是有点用的 0.91725457 0.9232 0.9548 0.95530.9177273 0.9234 0....

阿豪boy
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部