JSON数据的转换
1.在转换之前要导入几个包,分别为
commons-beanutils-1.7.0.jar
commons-chain-1.1.jar
commons-collections-3.2.1.jar
commons-digester-1.8.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar
morph-1.1.1.jar
morph-sandbox-1.1.1.jar
mysql-connector-java-5.1.6-bin.jar
其中有几个包可以不倒,不过一般情况下都倒进去
JSON数据和对象之间的相互转换 以Teacher和Studetn为例
Teacher.java
1. package cn.csdn.hr.domain;
2.
3. import java.util.Date;
4. import java.util.List;
5.
6. public class Teacher {
7.
8. private String name;
9. private String sex;
10. private int age;
11. private Date birth;
12.
13. //教室所有的学生
14. private List<Student> stus;
15.
16. public Teacher() {
17. super();
18. // TODO Auto-generated constructor stub
19. }
20.
21. public String getName() {
22. return name;
23. }
24.
25. public void setName(String name) {
26. this.name = name;
27. }
28.
29. public String getSex() {
30. return sex;
31. }
32.
33. public void setSex(String sex) {
34. this.sex = sex;
35. }
36.
37. public int getAge() {
38. return age;
39. }
40.
41. public void setAge(int age) {
42. this.age = age;
43. }
44.
45. public Date getBirth() {
46. return birth;
47. }
48.
49. public void setBirth(Date birth) {
50. this.birth = birth;
51. }
52.
53.
54. public List<Student> getStus() {
55. return stus;
56. }
57.
58. public void setStus(List<Student> stus) {
59. this.stus = stus;
60. }
61.
62. @Override
63. public String toString() {
64. return "Teacher [age=" + age + ", birth=" + birth + ", name=" + name
65. + ", sex=" + sex + ", stus=" + stus + "]";
66. }
67.
68. }
Student.java
package cn.csdn.hr.domain;
public class Student {
private String name;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
1. 把java对象转换为JSON数据
2. public void fromObject() {
3. // 将java对象转换为JSON数据
4. Teacher teacher = new Teacher();
5. teacher.setName("老王");
6. teacher.setAge(23);
7. teacher.setBirth(new Date());
8.
9. // JSON字符串 引入类库文件
10.
11. System.out.println(JSONObject.fromObject(teacher));
12.
13. /**
14. * 输出的内容为 { "age":23, "birth":{ "date":28, "day":2, "hours":1,
15. * "minutes":21, "month":1, "seconds":33, "time":1330392093234,
16. * "timezoneOffset":0, "year":112 }, "name":"老王", "sex":""}
17. */
18.
19. }
2. 将java集合转换为JSON字符串
public void fromVector() {
List<Teacher> teas = new ArrayList<Teacher>();
for (int i = 0; i < 3; i++) {
Teacher teacher = new Teacher();
teacher.setName("老王");
teacher.setAge(23);
teacher.setBirth(new Date());
teas.add(teacher);
}
// teas集合
System.out.println(JSONArray.fromObject(teas).toString());
}
/**
* 执行的结果是3个一样的对象
* [{"age":23,"birth":{"date":28,"day":2,"hours":1,"minutes":29
* ,"month":1,"seconds"
* :54,"time":1330392594187,"timezoneOffset":0,"year":112
* },"name":"老王","sex":
* ""},{"age":23,"birth":{"date":28,"day":2,"hours":1,"minutes"
* :29,"month":1,
* "seconds":54,"time":1330392594187,"timezoneOffset":0,"year":
* 112},"name":"老王"
* ,"sex":""},{"age":23,"birth":{"date":28,"day":2,"hours":1,
* "minutes":29,"month"
* :1,"seconds":54,"time":1330392594187,"timezoneOffset":
* 0,"year":112},"name":"老王","sex":""}]
*
*
*/
3. 将JSON字符串转换为对象
@Test
public void fromJsonObject() {
// 第一步:定义成字符串
String teaObj = "{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":20,\"month\":1,\"seconds\":25,\"time\":1330392025906,\"timezoneOffset\":-480,\"year\":112},\"name\":\"陈\",\"sex\":\"男\"}";
// 第二步:使用JsonObject.fromObject方法将其字符串转换为JsonObject对象
JSONObject jsonObj = JSONObject.fromObject(teaObj);
// 第三步:调用JsonObject的toBean的方法,将其转换成一个Object对象
Teacher teac = (Teacher) JSONObject.toBean(jsonObj, Teacher.class);
System.out.println(teac.toString());
}
4.将数组的字符串转换成集合对象
public void fromJsonArray() {
// 声明字符串
String teaArr = "[{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":28,\"month\":1,\"seconds\":44,\"time\":1330392524093,\"timezoneOffset\":-480,\"year\":112},\"name\":\"陈\",\"sex\":\"男\"},{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":28,\"month\":1,\"seconds\":44,\"time\":1330392524093,\"timezoneOffset\":-480,\"year\":112},\"name\":\"陈\",\"sex\":\"男\"},{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":28,\"month\":1,\"seconds\":44,\"time\":1330392524093,\"timezoneOffset\":-480,\"year\":112},\"name\":\"陈\",\"sex\":\"男\"}]";
// 调用JsonArray.fromObject方法将其字符串转成一个JsonArray'对象
JSONArray jsonArra = JSONArray.fromObject(teaArr);
// 第三步:调用
List<Teacher> teas = (List<Teacher>) JSONArray.toCollection(jsonArra,
Teacher.class);
for (Teacher tea : teas) {
System.out.println(tea.toString());
}
}
有一个最简单的方法是得到字符串之后,直接用:
eval("("+datas+")"); datas为得到 的字符串
5.将java对象转换为json数据,即是通过Teacher来得到Student的实体
public void fromObject1(){
// 将java对象转换为JSON数据
Teacher teacher = new Teacher();
teacher.setName("老王");
teacher.setAge(23);
teacher.setBirth(new Date());
List<Student> seas = new ArrayList<Student>();
for (int i = 0; i < 3; i++) {
Student stu = new Student();
stu.setName("熊熊"+i);
seas.add(stu);
}
teacher.setStus(seas);
System.out.println(JSONObject.fromObject(teacher).toString());
}
分享到:
相关推荐
在Java中,我们经常需要将JSON字符串与Java对象进行相互转换,以便于数据的传输和处理。本篇文章将详细探讨这个过程,以及如何使用常见的Java JSON库,如Gson和Jackson,进行JSON与Java对象的转换。 首先,让我们...
本文将详细介绍如何利用Google Gson库进行JSON字符串与对象之间的相互转换。 首先,我们需要了解Gson的核心概念。Gson库通过`Gson`类来实现JSON与Java对象的转换。当你有一个Java对象并想将其转化为JSON字符串时,...
form数据与json对象的互相转换(完整版) * 将web Form 的数据转化成json字符串 * 将json对象的值解析后填入web Form 在AJAX开发中这是关键技术: 1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传...
以下是对JSON与对象相互转换的一些详细说明: 1. **Python中的JSON操作**: - `json.dumps()`: 序列化对象到JSON字符串。例如,`json.dumps(obj, ensure_ascii=False)`可以将Python对象转化为JSON字符串,`ensure_...
总的来说,JSON与Java数据的相互转换是Web开发中的常见任务,理解并熟练掌握这些转换方法对于提升开发效率至关重要。开发者应根据项目需求和团队习惯选择合适的JSON处理库,并确保在处理过程中正确处理可能的异常,...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...
Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...
在标题中提到的"使用fastjson实现对象和json串之间的相互转换的jar包",就是指通过引入Fastjson的jar依赖,开发者可以在项目中直接调用其API来实现这两个功能。 首先,让我们看看如何将Java对象转换为JSON字符串。...
总结起来,C#提供了两种主要的方式来处理JSON数据和字符串的相互转换:内置的`System.Text.Json`库和流行的第三方库`Newtonsoft.Json`。两者都能满足大部分开发需求,但在某些特定场景下,如处理复杂数据类型或追求...
在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...
在Android开发中,数据交换和持久化经常涉及到实体类(Entity Class)与JSON字符串之间的转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。实体...
使用 Json SuperObject,我们可以轻松地将数据集转换为 JSON 对象,也可以将 JSON 对象转换为数据集。 接下来,我们将详细介绍如何使用 Json SuperObject 将数据集与 JSON 对象互转。 首先,我们需要定义一个类 ...
这个项目专注于使用纯JavaScript来实现JSON与JavaScript对象之间的转换,这对于数据传输、存储以及在前端和后端之间进行通信至关重要。 首先,我们需要理解JSON的基本结构。JSON是一种文本格式,主要由键值对组成,...
JSON是一种轻量级的数据交换格式,其数据结构主要由对象(键值对)和数组组成。XML则是一种标记语言,通过标签来描述数据的结构和内容。在C++中,处理JSON的库有很多,如nlohmann/json,而处理XML的库有pugixml、...
理解并熟练掌握`JSON.stringify()`和`JSON.parse()`方法,以及在处理服务器返回的JSON数据时的技巧,将有助于提升开发效率和代码质量。在面对复杂情况时,适时引入第三方库可以提供额外的帮助。
### JSON与Java对象相互转换详解 #### 一、引言 在现代软件开发尤其是Web应用开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。它基于JavaScript的一个子集,但独立于语言和...
Gson是Google提供的一个Java库,它能够将Java对象转换为JSON字符串,同时也能将JSON数据转换回等效的Java对象。在Android中,我们通常会创建一个工具类来封装这些转换操作,例如名为`GsonUtil`的类。 以下是一个...
在IT领域,我们经常需要将JSON数据转换为树结构,或者将树结构转换为JSON,以便更好地理解和操作数据。 首先,让我们了解JSON的基本结构。JSON由对象和数组两种基本类型组成。对象是键值对的集合,用花括号{}包围,...
`JSONObject`提供了一种将JSON数据映射到Java对象的方法,这在反序列化时非常有用。假设我们有一个名为`Person`的Java类: ```java public class Person { private String name; private int age; // getters ...
这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、Fastjson等流行的Java JSON库,它们各自提供了丰富的API来方便开发者进行对象与JSON的转换。 1. Jackson...