• 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
    学习的时间不一定要特定安排
  • 相关阅读:
    如何用一句话激怒设计师
    Kubernetes1.3:POD生命周期管理
    从零学React Native之11 TextInput
    从零学React Native之10Text
    html+js 在页面同步服务器时间
    电信行业的容器化改造之道
    容器化ICT融合初体验
    Laravel 发送邮件(最简单的讲解!)
    jquery( 点击按钮出来文本框并限制文本框的个数)
    OpenStack宣布用Kubernetes重写底层编排引擎
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/5498780.html
Copyright © 2020-2023  润新知