zoukankan      html  css  js  c++  java
  • JSONObject.fromObject--JSON与对象的转换

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。)

    代码中有这么一句,是后台的封装数据。

    JSONObject jo = JSONObject.fromObject(map);
    常见的java代码转换成json

    --请注意,这个方法曾经给我造成过困惑。因为,它在对Object转换的时候是按照domain类中的所有getXXX()方法进行转换的。如果你在类中写了非属性的getXXX()方法,那么返回给你的就会有XXX属性了。

    --使用net.sf.json.*下的类(jar包是json-lib-x.x.jar)



    1. List集合转换成json代码

    List list = new ArrayList();

    list.add( "first" );

    list.add( "second" );

    JSONArray jsonArray2 = JSONArray.fromObject( list );

    2. Map集合转换成json代码

    Map map = new HashMap();

    map.put("name", "json");

    map.put("bool", Boolean.TRUE);

    map.put("int", new Integer(1));

    map.put("arr", new String[] { "a", "b" });

    map.put("func", "function(i){ return this.arr[i]; }");

    JSONObject json = JSONObject.fromObject(map);

    3. Bean转换成json代码

    JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

    4. 数组转换成json代码

    boolean[] boolArray = new boolean[] { true, false, true };

    JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

    5. 一般数据转换成json代码

    JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

    public static void main(String[] args) {
      Map map=new HashMap();
      map.put("我","妹");
      map.put("擦","哇");
      map.put("你","呀");
      JSONObject json = JSONObject.fromObject(map);
      System.out.println(json);
     }

    輸出的結果 {"我":"妹","擦":"哇","你":"呀"}

    toBean();

    首先一个javabean对象
    public class Student {

        private int id ;
        private String name;
        private int age;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
        public String toString(){
            return this.id + ", " + this.name + ", " + this.age;
        }
    }

    然后测试toBean方法的类
    import net.sf.json.JSONObject;

    public class ToBeanTest {

        public static void main(String[] args) {
            
            String json = "{id:'1001',name:'张三',age:'22'}";
            Student stu = new Student();
            JSONObject obj = JSONObject.fromObject(json);
            stu = (Student)JSONObject.toBean(obj, Student.class);
            System.out.println(stu);
        }

    }
    输出结果为1001, 张三, 22 
    然后我们在修改修改
    import net.sf.json.JSONObject;

    public class ToBeanTest {

        public static void main(String[] args) {
            
            String json = "{id:'1001',name:'张三'}";
            Student stu = new Student();
            JSONObject obj = JSONObject.fromObject(json);
            stu = (Student)JSONObject.toBean(obj, Student.class);
            System.out.println(stu);
        }

    }
    把年龄给去掉age为int型,输出结果为:1001, 张三, 0 
    然后再做小小改动
    import net.sf.json.JSONObject;

    public class ToBeanTest {

        public static void main(String[] args) {
            
            String json = "{id:'1001',age:'22'}"; 
            Student stu = new Student();
            JSONObject obj = JSONObject.fromObject(json);
            stu = (Student)JSONObject.toBean(obj, Student.class);
            System.out.println(stu);
        }

    }
    把姓名给去掉name为String型,输出结果为:1001, null, 22 
    再改动一下:
    import net.sf.json.JSONObject;

    public class ToBeanTest {

        public static void main(String[] args) {
            
            String json = "{id:'1001',name:'张三',age:'nn'}";
            Student stu = new Student();
            JSONObject obj = JSONObject.fromObject(json);
            stu = (Student)JSONObject.toBean(obj, Student.class);
            System.out.println(stu);
        }

    }
    把age改成非整形,输出结果为:
    1001, 张三, 0 

    再改动一下:
    import net.sf.json.JSONObject;

    public class ToBeanTest {

        public static void main(String[] args) {
            
            String json = "{id:'1001',name:'张三',age:'22',sex:'男'}";
            Student stu = new Student();
            JSONObject obj = JSONObject.fromObject(json);
            stu = (Student)JSONObject.toBean(obj, Student.class);
            System.out.println(stu);
        }

    }
    加了一个sex:'男'的一对键值,输出结果为:
    1001, 张三, 22

  • 相关阅读:
    [小知识]如何查看IIS6应用程序池所对应的进程ID
    继续向大家汇报服务器情况
    CNBlogs DotText 1.0 Beta 2 重要更新
    垃圾广告记录
    Firefox 11正式发布
    Firefox 10正式发布
    Firefox 6 正式发布
    Firefox 5 正式发布
    Firefox 9正式发布
    Firefox 8正式发布
  • 原文地址:https://www.cnblogs.com/sq-software/p/5336109.html
Copyright © 2011-2022 走看看