关于java:java中字符串String格式转化成json格式

51次阅读

共计 2044 个字符,预计需要花费 6 分钟才能阅读完成。

一、将 Sting 转为 Json

在开发中,常常是前端发送一串数据过去之后,是通过一个参数带着一串值过去,这一串值是 String 格局的,然而外面的内容其实是 json 格局类型的,所以拿到值之后就要将该值转化成 json 格局,而后获取外面指定的 key 就能够拿到该值了。

JSONObject jsonObject =  JSON.parseObject(tt);

这样就能够将一串参数转化成 json 对象了,而后通过上面指定的 key 获取特定的值,如上面所示

String imei= (String) jsonObject.get("imei");

在返回数据中,要常常返回指定的 json 格局,我用的是如下所示:

Map<String,Object>map=new HashMap<>();
map.put("ret",1);
map.put("ret1","no");
map.put("tag1",sh.getTOpen());
map.put("video",sh.getfOpen());
map.put("video1",sh.getVOpen());
map.put("video2",sh.getViOpen());

String json=JSON.toJSONString(map);

而后 return json; 就能够了,不过个别这个值是要加密之后再上传给前端的。

二、fastjson 的应用

FastJSON 是一个 Java 语言编写的高性能,功能完善,齐全反对 http://json.org 的规范的 JSON 库。

引入依赖:

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

序列化

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

com.alibaba.fastjson.JSON 提供了许多办法(多态)实现序列化。

1. 根本的序列化


String objJson = JSON.toJSONString(Object object);

传入一个对象,将对象转成 JSON 字符串。

例 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 User 转成 JSON。

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

输入后果:

{"age":24,"userName":"李四"}

反序列化

反序列化就是把 JSON 格局的字符串转化为 Java Bean 对象。
com.alibaba.fastjson.JSON 提供了许多办法(多态)实现反序列化。

指定 Class 信息反序列化。

例 3:将例 2 反序列化。

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

输入后果:

 李四 

泛型的反序列化

泛型的反序列化, 应用 TypeReference 传入类型信息。

例 5:将例 1 反序列化。

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

JSONObject,JSONArray

JSONObject,JSONArray 是 JSON 的两个子类。

JSONObject 相当于 Map<String, Object>
JSONArray 相当于 List<Object>

简略办法示例:

例 6:将 Map 转成 JSONObject,而后增加元素,输入。

Map<String, Object> map = new HashMap<String, Object>();
 map.put("key1", "One");
map.put("key2", "Two");
                           
JSONObject j = new JSONObject(map);
                  
j.put("key3", "Three");
           
System.out.println(j.get("key1"));
System.out.println(j.get("key2"));
System.out.println(j.get("key3"));

正文完
 0