JSONObject的toBean 和 fromObject (轉)

star77266989發表於2015-09-07
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

 

相關文章