`
lyunabc
  • 浏览: 563366 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

JSON数据和对象之间的相互转换

 
阅读更多

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());

}

分享到:
评论

相关推荐

    Json与java对象之间相互转换源码

    在Java中,我们经常需要将JSON字符串与Java对象进行相互转换,以便于数据的传输和处理。本篇文章将详细探讨这个过程,以及如何使用常见的Java JSON库,如Gson和Jackson,进行JSON与Java对象的转换。 首先,让我们...

    利用Google Gson实现JSON字符串和对象之间相互转换

    本文将详细介绍如何利用Google Gson库进行JSON字符串与对象之间的相互转换。 首先,我们需要了解Gson的核心概念。Gson库通过`Gson`类来实现JSON与Java对象的转换。当你有一个Java对象并想将其转化为JSON字符串时,...

    form数据与json对象的互相转换(完整版)

    form数据与json对象的互相转换(完整版) * 将web Form 的数据转化成json字符串 * 将json对象的值解析后填入web Form 在AJAX开发中这是关键技术: 1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传...

    json与对象相互转换系列处理

    以下是对JSON与对象相互转换的一些详细说明: 1. **Python中的JSON操作**: - `json.dumps()`: 序列化对象到JSON字符串。例如,`json.dumps(obj, ensure_ascii=False)`可以将Python对象转化为JSON字符串,`ensure_...

    JSON与JAVA数据的相互转换

    总的来说,JSON与Java数据的相互转换是Web开发中的常见任务,理解并熟练掌握这些转换方法对于提升开发效率至关重要。开发者应根据项目需求和团队习惯选择合适的JSON处理库,并确保在处理过程中正确处理可能的异常,...

    json格式与java类对象相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...

    使用jackson完成json与java对象的互相转换实例

    Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...

    使用fastjson实现对象和json串之间的相互转换的jar包

    在标题中提到的"使用fastjson实现对象和json串之间的相互转换的jar包",就是指通过引入Fastjson的jar依赖,开发者可以在项目中直接调用其API来实现这两个功能。 首先,让我们看看如何将Java对象转换为JSON字符串。...

    C#字符串和JSON数据类型相互转换

    总结起来,C#提供了两种主要的方式来处理JSON数据和字符串的相互转换:内置的`System.Text.Json`库和流行的第三方库`Newtonsoft.Json`。两者都能满足大部分开发需求,但在某些特定场景下,如处理复杂数据类型或追求...

    json字符串转换c++类对象

    在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...

    【android开发】实体类和JSON字符串之间相互转化

    在Android开发中,数据交换和持久化经常涉及到实体类(Entity Class)与JSON字符串之间的转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。实体...

    Delphi中JSon SuperObject 使用数据集与JSON对象互转.docx

    使用 Json SuperObject,我们可以轻松地将数据集转换为 JSON 对象,也可以将 JSON 对象转换为数据集。 接下来,我们将详细介绍如何使用 Json SuperObject 将数据集与 JSON 对象互转。 首先,我们需要定义一个类 ...

    纯javascript实现json与对象的互相转换项目

    这个项目专注于使用纯JavaScript来实现JSON与JavaScript对象之间的转换,这对于数据传输、存储以及在前端和后端之间进行通信至关重要。 首先,我们需要理解JSON的基本结构。JSON是一种文本格式,主要由键值对组成,...

    C++结构体和json/xml之间互相转换

    JSON是一种轻量级的数据交换格式,其数据结构主要由对象(键值对)和数组组成。XML则是一种标记语言,通过标签来描述数据的结构和内容。在C++中,处理JSON的库有很多,如nlohmann/json,而处理XML的库有pugixml、...

    JSON字符串和对象相互转换

    理解并熟练掌握`JSON.stringify()`和`JSON.parse()`方法,以及在处理服务器返回的JSON数据时的技巧,将有助于提升开发效率和代码质量。在面对复杂情况时,适时引入第三方库可以提供额外的帮助。

    json和对象相互转换

    ### JSON与Java对象相互转换详解 #### 一、引言 在现代软件开发尤其是Web应用开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。它基于JavaScript的一个子集,但独立于语言和...

    安卓 JSON实现对象和数组的相互转换

    Gson是Google提供的一个Java库,它能够将Java对象转换为JSON字符串,同时也能将JSON数据转换回等效的Java对象。在Android中,我们通常会创建一个工具类来封装这些转换操作,例如名为`GsonUtil`的类。 以下是一个...

    json与树的相互转换

    在IT领域,我们经常需要将JSON数据转换为树结构,或者将树结构转换为JSON,以便更好地理解和操作数据。 首先,让我们了解JSON的基本结构。JSON由对象和数组两种基本类型组成。对象是键值对的集合,用花括号{}包围,...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    `JSONObject`提供了一种将JSON数据映射到Java对象的方法,这在反序列化时非常有用。假设我们有一个名为`Person`的Java类: ```java public class Person { private String name; private int age; // getters ...

    Java对象与Json之间的互相转换的jar包

    这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、Fastjson等流行的Java JSON库,它们各自提供了丰富的API来方便开发者进行对象与JSON的转换。 1. Jackson...

Global site tag (gtag.js) - Google Analytics