java对象和json对象之间互相转换(中)

++++++++++++++++++++++++++++++++++++++
实体(用途:看总结)
++++++++++++++++++++++++++++++++++++++

package testjson;
import java.util.Arrays;
/** 
* @author  wunan  E-mail: 2215225782@qq.com
* @version 创建时间:2017年4月25日 上午10:33:00 
*/
public class Student1 implements java.io.Serializable{  

private static final long serialVersionUID = 1L;
private int id;
private String name;
private String sex;
private int age;
private String[] hobby;


public Student1(){}

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 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;
}

public String getTotalInformation()
{
    return "姓名:"+name+",年龄:"+age+",性别:"+sex+",爱好:"+Arrays.toString(hobby);
}

@Override
public String toString() {
    return "Student1 [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + ", hobby="
            + Arrays.toString(hobby) + "]";
}

}

    package testjson;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;

   /** 
    * @author  wunan  E-mail: 2215225782@qq.com
    * @version 创建时间:2017年4月25日 上午10:13:29 
    */

    public class Tesobject2Json1 {
     private static void TestJsonArray() {

   Student1 student1 = new Student1();  
   student1.setId(1);  
   student1.setName("jag");  
   student1.setSex("man");  
   student1.setAge(25);  
   student1.setHobby(new String[]{"篮球","游戏"});  

    Student1 student2 = new Student1();  
    student2.setId(2);  
    student2.setName("tom");  
    student2.setSex("woman");  
    student2.setAge(23);  
    student2.setHobby(new String[]{"上网","跑步"});  

    List<Student1> list = new ArrayList<Student1>();  
    list.add(student1);  
    list.add(student2);  

    //转换为json数组形式,以字符串的形式输出

    JSONArray jsonArray = JSONArray.fromObject(list);  
    System.out.println(jsonArray.toString());  
  }
   /** 
     * java对象与json对象互相转换 
     */  
    private static void TestJsonBean() {  
        /** 
         * 创建java对象 
         */  
        Student1 student = new Student1();  
        student.setId(1);  
        student.setName("jag");  
        student.setSex("man");  
        student.setAge(25);  
        student.setHobby(new String[]{"篮球","上网","跑步","游戏"});  
        /** 
         * java对象转换成json对象,并获取json对象属性 
         */
        System.out.println("---------1原始java对象----------");
        System.out.println(student.toString());

        JSONObject jsonStu = JSONObject.fromObject(student);
        //原始的java对象中没有totalInformation属性,然而,转换后的json数据形式中却又totalInformation属性
        //是因为我在student1的pojo类中设置了getTotalInformation()方法,可以看出,在java转换json对象的过程
        //中实际是调用的是java对象的get方法来设置对应的json对象的属性,而不是依托的是java对象的属性,而是依托的是java
        //对象的getXXX方法来给json对象进行属性设置和属性赋值
        String totalInformation = jsonStu.getString("totalInformation");
        System.out.println("totalInformation = "+totalInformation);

        System.out.println("---------2转换后的json形式的字符串----------");
        System.out.println(jsonStu.toString());  
        /**
         * json对象转换成java对象,并获取java对象属性 
         */
        System.out.println("---------3json转换为java----------");
        Student1 stu = (Student1) JSONObject.toBean(jsonStu, Student1.class);  
        System.out.println(stu.toString());   
    }  
    public static void main(String[] args) {
         Tesobject2Json1.TestJsonArray();
         Tesobject2Json1.TestJsonBean();
    } 

}

+++++++++++++++++++++++++++++++++++++++++++
测试结果:
+++++++++++++++++++++++++++++++++++++++++++

[{"age":25,"hobby":["篮球","游戏"],"id":1,"name":"jag","sex":"man","totalInformation":"姓名:jag,年龄:25,性别:man,爱好:[篮球, 游戏]"},{"age":23,"hobby":["上网","跑步"],"id":2,"name":"tom","sex":"woman","totalInformation":"姓名:tom,年龄:23,性别:woman,爱好:[上网, 跑步]"}]
---------1原始java对象----------
Student1 [id=1, name=jag, sex=man, age=25, hobby=[篮球, 上网, 跑步, 游戏]]
totalInformation = 姓名:jag,年龄:25,性别:man,爱好:[篮球, 上网, 跑步, 游戏]
---------2转换后的json形式的字符串----------
{"age":25,"hobby":["篮球","上网","跑步","游戏"],"id":1,"name":"jag","sex":"man","totalInformation":"姓名:jag,年龄:25,性别:man,爱好:[篮球, 上网, 跑步, 游戏]"}
---------3json转换为java----------
Student1 [id=1, name=jag, sex=man, age=25, hobby=[篮球, 上网, 跑步, 游戏]]

*总结:在java转换为json的过程中,依赖的是java对象的getXXX( )函数进行字段转换,
在开发过程中当我们定义了表对应的实体类,(1)而往往我们页面需要的返回的json数据形式不仅仅是从表映射到java实体类的所有字段,往往还包含着其他的字段,如上面举例的原有字段的组合字段,这种情况下,我们只需要在java实体类中添加需要组合字段的getXXX()方法,这样,在java对象转换成json字符串形式时,就会调用这个方法
在json字符串中生成XXX字段(属性)和值(return中的值),这样,就不需要对原有的java对象添加字段。*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值