Java中String类型的字符串转换成JSON对象和JSON字符串

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、Java字符串String类型转换成Json对象
  • 二、序列化
    • 1.引入fastjson依赖
    • 2.序列化的使用
  • 三、反序列化
    • 1.引入fastjson依赖
    • 2.反序列化的使用


一、Java字符串String类型转换成Json对象

在开发中会遇到接收前端传入一个Json对象,然后Json对象里面又有一个字段是Json字符串,例如

{
	"code": "000000",
	"msg": "{\"createTime\":\"20241225\",\"orderId\": \"CP100001\"}"
}

上面的msg字段,如果我们在后端用Map类型去接收,一般使用的代码是

String msg = map.get("msg");

这样,我们打印msg的结果就是上面所见到的,变成了一个String类型的Java字符串,那么我们想要获取msg里面的oderId字段,需要先将String类型的msg字段转换成JSON对象JSONObject

//java字符串转JSON对象
JSONObject jsonObject = JSON.parseObject(msg);
//可以直接从json对象里拿到想要的字段
String orderId = jsonObject.getString("orderId");

如果想要在转化成JSON字符串,可以

String jsonOrderId = JSONObject.toJSONString("orderId");

二、序列化

1.引入fastjson依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.23</version>
</dependency>

2.序列化的使用

序列化就是指 把JavaBean对象转成JSON格式的字符串。
基本的序列化

//对象转换成JSON字符串
String objJson = JSON.toJSONString(Object object);

(1)Map转Json字符串

Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "One");
map.put("key2", "Two");

String mapJson = JSON.toJSONString(map);

输出结果:
{"key1":"One","key2":"Two"}

(2)自定义的JavaBean转Json字符串

User user = new User();
user.setUserName("李四");
user.setAge(24);    
String userJson = JSON.toJSONString(user);

输出结果:
{"age":24,"userName":"李四"}

三、反序列化

1.引入fastjson依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.23</version>
</dependency>

2.反序列化的使用

反序列化就是把JSON格式的字符串转化为Java Bean对象

(1)基本的反序列化
将上面的userJson字符串反序列化成javaBean对象

User user1 = JSON.parseObject(userJson, User.class);
System.out.println(user1.getUserName());

输出结果:
李四

(2)泛型的反序列化
泛型的反序列化,使用 TypeReference 传入类型信息

Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});
System.out.println(map1.get("key1"));
System.out.println(map1.get("key2"));

输出结果:
One
Two

你可能感兴趣的:(java,json)