您的位置:首页 > 编程语言 > Java开发

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

2017-04-26 16:37 375 查看
++++++++++++++++++++++++++++++++++++++
实体(用途:看总结)
++++++++++++++++++++++++++++++++++++++

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对象添加字段。*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java json 对象 get