大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
一、将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提供了许多方法(多态)实现反序列化。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYUTjNtM-1605684955339)(https://upload-images.jianshu.io/upload_images/20317748-3f706d09221df322?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
指定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 。
简单方法示例:
例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"));
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172486.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...