博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
161.使用fastjson将json格式的数据转化为对象
阅读量:6419 次
发布时间:2019-06-23

本文共 3261 字,大约阅读时间需要 10 分钟。

hot3.png

1. 导入fastjson的jar包

        <!-- 9.fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.47</version>
            </dependency>

e812b6eaf0468084602450a8876ba005bdc.jpg

2. 常用几种类型的json转化为对象

 

 

2.1 对象形式的json

    @RequestMapping("/EasyJsonToObject.action")
    public void EasyJsonToObject(){
        
        //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据   
            Student student = new  Student();
                    student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id
                    student.setName("张三");
                    student.setPassword("122455");
            String studentJson = JSON.toJSONString(student);//将对象转json
            System.out.println(studentJson);
                
            
        //(2)再将对象转化为
        Student changeStudent = JSON.parseObject(studentJson,Student.class);
        System.out.println(changeStudent);
    }

2.1.1 将对象转化为json

需要的实体类格式:

6a393655cf08a37d369e2c79cabb7a7f042.jpg

转换过程:

bb9704218242e90133059d7a42a13e08c91.jpg

2.1.2 将json数据转为对象

c73c7cce07691ff4d51a8aac3f9ad8b6aa0.jpg

2.2 将list对象转为json 然后将对象list数据

@RequestMapping("/listJsonToObject.action")
    public void listJsonToObject(){
        
        //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据   
               List<Student> list= new ArrayList<Student>();
                Student student = new  Student();
                    student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id
                    student.setName("刘莹");
                    student.setPassword("123456");
               Student student2 = new  Student();
                    student2.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id
                    student2.setName("张晓琪");
                    student2.setPassword("789456");
                    list.add(student);
                    list.add(student2);
            String studentJson = JSON.toJSONString(list);//将对象转json
            System.out.println(studentJson);
        
        
        //(2)再将对象转化为
        List<Student> list2 = JSON.parseArray(studentJson,Student.class);
        System.out.println(list2);
    }

 

需要的实体类对象

6a393655cf08a37d369e2c79cabb7a7f042.jpg

29c7c056f365a67786218e5f60e75bfd5cd.jpg

2.3  对象中含有对象 转化为对象

    @RequestMapping("/mapListJsonToObject.action")
    public void mapListJsonToObject(){
        
        //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据   
        HashMap<String, Object> map = new   HashMap<String,Object>();//用来装数据
        
        Student student = new  Student();
            student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id
            student.setName("刘思佳");
            student.setPassword("123456");
        
            map.put("code", "200");
            map.put("data", student);
        String studentJson = JSON.toJSONString(map);//将对象转json
        System.out.println(studentJson);
        //(2)再将对象转化为
        Data data = JSON.parseObject(studentJson,Data.class);
        System.out.println(data);
    }

 

392fbaabc193944d8a9bc447ad4fe08939d.jpg

 

92ef366a692b3c95546c4ef7c044c0660cc.jpg

2.4 对象中含有list的json格式

    /**
     * 3.复杂json转为对象
     *                                        对象中包含数组的json
     * http://localhost:8080/mavenssm20180519//josnIncludeListJsonToObject.action
     * : josnIncludeListJsonToObject
     * @Description: 
     * @return void
     * @throws 
       @date 2018年7月22日 下午10:46:00
     */
    @RequestMapping("/josnIncludeListJsonToObject.action")
    public void josnIncludeListJsonToObject(){
        //(1) 创建一个对象并将 给对象赋值 然后使用fastjson转化为json类型的数据   
        HashMap<String, Object> map = new   HashMap<String,Object>();//用来装数据
        
        List<Student> list= new ArrayList<Student>();
        Student student = new  Student();
            student.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id
            student.setName("刘思佳");
            student.setPassword("123456");
        Student student2 = new  Student();
            student2.setId(UUID.randomUUID().toString().replaceAll("-", ""));//生成id
            student2.setName("陈晓莹");
            student2.setPassword("789456");
        list.add(student);
        list.add(student2);
            map.put("code", "200");
            map.put("data", list);
            String studentJson = JSON.toJSONString(map);//将对象转json
        System.out.println(studentJson);
        //(2)再将对象转化为
     Data data = JSON.parseObject(studentJson,Data.class);
        System.out.println(data);
    }

需要的实体类(****重要)

546f3ae72faf446597e224fbbd5a1a421ff.jpg

 将

95052401029e4bcc8d935588518984f78a0.jpg

转载于:https://my.oschina.net/springMVCAndspring/blog/1861075

你可能感兴趣的文章
http协议与http代理
查看>>
【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例...
查看>>
Redis+Spring缓存实例
查看>>
Storm集群安装详解
查看>>
centos7.x搭建svn server
查看>>
原码编译安装openssh6.7p1
查看>>
easyui-datetimebox设置默认时分秒00:00:00
查看>>
蚂蚁分类信息系统5.8多城市UTF8开源优化版
查看>>
在django1.2+python2.7环境中使用send_mail发送邮件
查看>>
“Metro”,移动设备视觉语言的新新人类
查看>>
PHP源代码下载(本代码供初学者使用)
查看>>
Disruptor-NET和内存栅栏
查看>>
Windows平台ipod touch/iphone等共享笔记本无线上网设置大全
查看>>
播放加密DVD
查看>>
产品设计体会(3013)项目的“敏捷沟通”实践
查看>>
RHEL6.3基本网络配置(1)ifconfig命令
查看>>
网络诊断工具之—路由追踪tracert命令
查看>>
Java模拟HTTP的Get和Post请求(增强)
查看>>
php 环境搭建(windows php+apache)
查看>>
让虚拟机的软盘盘符不显示(适用于所有windows系统包括Windows Server)
查看>>