json通信协议 java_使用json格式的数据进行通信

4 Java对象转换成JSON

4.1 问题

将Java对象转换成符合JSON格式的字符串,并测试。

4.2 方案

使用与json-lib.jar相关的jar文件完成类型的转换。

4.3 步骤

步骤一:新建实体类Friend

image015.png

图- 15

步骤二:新建JSONTest类

在该类中添加四个方法,分别用于测试Java对象转换为JSON字符串,Java数组转换为JSON字符串,JSON字符串转换为Java对象,JSON字符串转换为Java数组。

步骤三:引入jar文件

在添加jar文件的时候,需要导入6个jar文件,缺一不可。如图-16所示。

image016.png

图- 16

步骤四:添加具体的转换方法:Java对象转换为JSON字符串

image017.png

图- 17

步骤五:运行结果

image018.png

图– 18

步骤六:Java数组(集合)转换为JSON字符串

image019.png

图– 19

运行结果:

image020.png

图- 20

步骤七:JSON字符串转换为Java对象

image021.png

图– 21

运行结果:

image022.png

图- 22

步骤八:JSON字符串转换为Java数组(集合)

image023.png

图– 23

运行结果:

image024.png

图- 24

4.4 完整代码

Friend.java文件代码如下:

package bean;

public class Friend {

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String toString() {

return this.name + " " + this.age;

}

}

JSONTest.java文件代码如下:

package json;

import java.util.ArrayList;

import java.util.List;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import bean.Friend;

public class JSONTest {

/**

* Java对象转换为JSON字符串

*/

public static void test1() {

Friend f = new Friend();

f.setName("Zoro");

f.setAge(19);

JSONObject jsonObj = JSONObject.fromObject(f);

String jsonStr = jsonObj.toString();

System.out.println(jsonStr);

}

/**

* Java数组转换为JSON字符串

*/

public static void test2() {

List fs = new ArrayList();

for (int i = 0; i < 3; i++) {

Friend f = new Friend();

f.setName("Zoro" + (i + 1));

f.setAge(19 + i);

fs.add(f);

}

JSONArray jsonArr = JSONArray.fromObject(fs);

String jsonStr = jsonArr.toString();

System.out.println(jsonStr);

}

/**

* JSON字符串转换为Java对象

*/

public static void test3(){

String jsonStr = "{\"name\":\"Luffy\",\"age\":17}";

JSONObject jsonObj = JSONObject.fromObject(jsonStr);

Friend friend = (Friend)JSONObject.

toBean(jsonObj, Friend.class);

System.out.println(friend);

}

/**

* JSON字符串转换为Java数组

*/

public static void test4(){

String jsonStr = "[{\"name\":\"Luffy\",\"age\":17}," +

"{\"name\":\"Zoro\",\"age\":19}]";

JSONArray jsonArr = JSONArray.fromObject(jsonStr);

List friends = (List)JSONArray.

toCollection(jsonArr, Friend.class);

for(Friend f :friends){

System.out.println(f);

}

}

public static void main(String[] args) {

//test1();

//test2();

//test3();

test4();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值