JAVA中使用JSON进行数据传递示例

2025-05-29 0 39

最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作。

其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JSON字符串来传递数据并在WEB前端或者Android客户端使用JSON来解析接收到的数据。

首先,在JAVA中使用JSON需要引入 org.json 包, 并在程序中引入相应的JSON类:

?

1

2

3
import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

其次,在服务器端的Servlet类中,可以使用如下方法收集数据并生成相应的JSON字符串

?

1

2

3

4

5

6

7

8

9
//声明一个Hash对象并添加数据

Map params = new HashMap();

params.put("username", username);

params.put("user_json", user);

//声明JSONArray对象并输入JSON字符串

JSONArray array = JSONArray.fromObject(params);

put.println(array.toString());

在WEB前端可以通过javascript直接对JSON字符串进行解析,在Android客户端的话,需要使用JSON类来解析字符串:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
//@description: 根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象

//接收到的JSON字符串

String result = "[{\\"username\\": \\"your name\\", \\"user_json\\": {\\"username\\": \\"your name\\", \\"nickname\\": \\"your nickname\\"}}]";

//根据字符串生成JSON对象

JSONArray resultArray = new JSONArray(result);

JSONObject resultObj = resultArray.optJSONObject(0);

//获取数据项

String username = resultObj.getString("username");

//获取数据对象

JSONObject user = resultObj.getJSONObject("user_json");

String nickname = user.getString("nickname");

其实,主要就是涉及到以下集中数据类型之间的转换:

1. String 转换为JSON对象

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54
import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

//别忘了添加上JSON包哦!

public class StringToJSON {

public static void main(String[] args) throws JSONException{

System.out.println("abc");

//定义JSON字符串

String jsonStr = "{\\"id\\": 2," +

" \\"title\\": \\"json title\\", " +

"\\"config\\": {" +

"\\"width\\": 34," +

"\\"height\\": 35," +

"}, \\"data\\": [" +

"\\"JAVA\\", \\"JavaScript\\", \\"PHP\\"" +

"]}";

//转换成为JSONObject对象

JSONObject jsonObj = new JSONObject(jsonStr);

//从JSONObject对象中获取数据

JavaBean bean = new JavaBean();

//根据属性名称获取int型数据;

bean.setId(jsonObj.getInt("id"));

//根据属性名获取String数据;

bean.setTitle(jsonObj.getString("title"));

//根据属性名获取JSONObject类

JSONObject config = jsonObj.getJSONObject("config");

bean.setWidth(config.getInt("width"));

bean.setHeight(config.getInt("height"));

//根据属性名获取JSONArray数组

JSONArray data = jsonObj.getJSONArray("data");

for(int index = 0, length = data.length(); index < length; index++) {

//这里在org.json.JSONArray对象中居然没有找到toArray方法,求各位网友给出解决办法啊!

// bean.setLanguages(String[]);

}

}

}

class JavaBean{

private int id ;

private String title;

private int width;

private int height;

private String[] languages;

//这里省略了设置器和访问器

}

2. JSON对象转换为String字符串

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
public static void main(String[] args) throws JSONException {

//创建JSONObject对象

JSONObject json = new JSONObject();

//向json中添加数据

json.put("username", "wanglihong");

json.put("height", 12.5);

json.put("age", 24);

//创建JSONArray数组,并将json添加到数组

JSONArray array = new JSONArray();

array.put(json);

//转换为字符串

String jsonStr = array.toString();

System.out.println(jsonStr);

}

最终输出结果为: [{"username":"wanglihong","height":12.5,"age":24}]

3. 集合转换为JSONArray对象

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
public static void main(String[] args)throws JSONException{

//初始化ArrayList集合并添加数据

List<String> list = new ArrayList<String>();

list.add("username");

list.add("age");

list.add("sex");

//初始化HashMap集合并添加数组

Map map = new HashMap();

map.put("bookname", "CSS3实战");

map.put("price", 69.0);

//初始化JSONArray对象,并添加数据

JSONArray array = new JSONArray();

array.put(list);

array.put(map);

//生成的JSON字符串为:[["username","age","sex"],{"price":69,"bookname":"CSS3实战"}]

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 JAVA中使用JSON进行数据传递示例 https://www.kuaiidc.com/119522.html

相关文章

发表评论
暂无评论