zoukankan      html  css  js  c++  java
  • 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
    学习的时间不一定要特定安排
  • 相关阅读:
    JS组件系列——使用HTML标签的data属性初始化JS组件
    JS组件系列——分享自己封装的Bootstrap树形组件:jqTree
    JS组件系列——封装自己的JS组件,你也可以
    JS组件系列——Bootstrap 树控件使用经验分享
    JS组件系列——Bootstrap Select2组件使用小结
    面试干货——年底干货大放送,你准备好了吗?
    JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)
    JS组件系列——Form表单验证神器: BootstrapValidator
    HTTPS的加密过程
    Http知识总结
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/5498780.html
Copyright © 2011-2022 走看看