• json转换成对象


    在json转换成对象时,json的key会与java 类的字段一一对应。如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等。

    没有映射的json key在程序结束后会用警告显示出来,告知程序员那个key值没有被映射上

    import net.sf.json.JSONObject;
    
    public class MainClass {
    
        public static void main(String[] args) {
            TestJsonBean();
            
        }
    
        
        
        /**
         * java对象与json对象互相转换
         */
        private static void TestJsonBean() {
            /**
             * 创建java对象
             */
            Student student = new Student();
            student.setId(1);
            student.setName("jag");
            student.setSex("man");
            student.setAge(25);
            student.setHobby(new String[]{"篮球","上网","跑步","游戏"});
            /**
             * java对象转换成json对象,并获取json对象属性
             */
            JSONObject jsonStu = JSONObject.fromObject(student);
            System.out.println(jsonStu.toString());
            System.out.println(jsonStu.getJSONArray("hobby"));
            /**
             * json对象转换成java对象,并获取java对象属性
             */
            Student stu = (Student) JSONObject.toBean(jsonStu, Student.class);
            System.out.println(stu.getName());
            /**
             * 创建json对象
             */
            JSONObject jsonObj = new JSONObject();
            jsonObj.put("id",1);
            jsonObj.put("name","张勇");
            jsonObj.put("sex","男");
            //jsonObj.put("age",24);
            //jsonObj.put("hobby",new String[]{"上网","游戏","跑步","音乐"});
            //System.out.println(jsonObj.toString());
            /**
             * json对象转换成java对象
             */
            Student stud = (Student) JSONObject.toBean(jsonObj,Student.class);
            System.out.println(stud.getAge());        
        }
    }
    View Code

    运行结果

    {"age":25,"hobby":["篮球","上网","跑步","游戏"],"id":1,"name":"jag","sex":"man"}
    ["篮球","上网","跑步","游戏"]
    jag
    0

    改一下代码

    JSONObject jsonObj = new JSONObject();
            jsonObj.put("id",1);
            jsonObj.put("name","张勇");
            jsonObj.put("old","男");//这个是类没有的元素

    结果;

    {"age":25,"hobby":["篮球","上网","跑步","游戏"],"id":1,"name":"jag","sex":"man"}
    ["篮球","上网","跑步","游戏"]
    jag
    0
    五月 16, 2016 5:18:22 下午 net.sf.json.JSONObject toBean
    警告: Tried to assign property old:java.lang.String to bean of class Student

    student 类

    import java.io.Serializable;
    
    public class Student implements Serializable {
    
        private long id;
        private String name;
        private String sex;
        private int age;
        private String[] hobby;
        public long getId() {
            return id;
        }
        public void setId(long id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String[] getHobby() {
            return hobby;
        }
        public void setHobby(String[] hobby) {
            this.hobby = hobby;
        }
        
    }
    View Code
    学习的时间不一定要特定安排
  • 相关阅读:
    实现连续测试,要做的事情【译】
    Go语言HTTPServer开发的六种实现
    JSON必知必会【PDF+视频教程】
    给JSONObject添加自定义遍历方法
    利用守护线程隐式关闭线程池
    从错误中学习
    Groovy动态添加方法和属性及Spock单测
    持续测试、持续集成、持续交付、持续部署和DevOps
    有关OAuth 2.0简化模式中步骤D-F的解释
    Spring笔记(五):bean的自动装配
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/5498780.html
Copyright © 2020-2023  润新知