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对象之间互相转换
- java对象和json对象之间互相转换
- java对象和json对象之间互相转换
- Java对象和集合与Json之间的互相转换
- java对象和json对象之间互相转换
- java对象和json对象之间互相转换
- java对象和json对象之间互相转换
- json:java对象和json对象之间的互相转换
- (net.sf.json) java对象和json对象之间互相转换
- jsontools实现java对象与json值之间互相转换
- java对象和json对象之间互相转换
- java对象和json对象之间互相转换例子
- java对象与json对象之间互相转换实现方法示例
- jsontools实现java对象与json值之间互相转换
- java对象和json对象之间互相转换
- java对象和json对象之间互相转换
- Jackson框架下,Java对象与JSON之间的互相转换
- java对象和json对象之间互相转换
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- java对象和json对象之间互相转换