java中字符串String格式转化成json格式[通俗易懂]

java中字符串String格式转化成json格式[通俗易懂]一、将Sting转为Json在开发中,经常是前端发送一串数据过来之后,是通过一个参数带着一串值过来,这一串值是String格式的,但是里面的内容其实是json格式类型的,所以拿到值之后就要将该值转化成json格式,然后获取里面指定的key就可以拿到该值了。JSONObjectjsonObject=JSON.parseObject(tt);这样就可以将一串参数转化成json对象了,然后通过下面指定的key获取特定的值,如下面所示Stringimei=(String)jsonObjec

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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提供了许多方法(多态)实现序列化。

image

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"));
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172486.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HDFS命令详解[通俗易懂]

    HDFS命令详解[通俗易懂]hdfs命令:ls格式:hdfsdfs-lspath作用:类似于linux的ls命令,显示文件列表hdfsdfs-ls/lsr格式:hdfsdfs-lsrpath作用:在整个目录下递归执行ls,与lunix中的ls-R类似hdfsdfs-lsr/mkdir格式:hdfsdfs[-p]-mkdirpath作用:创建目录,-p表示可以递归创…

    2022年10月5日
    3
  • tiktok案例分析_metaobject

    tiktok案例分析_metaobjecttictoc12.ned文件//input:指定当前门是输入门,只能和输出门连接,只能接受消息//output:当前门是输出门,只能和输入门连接,只能发送消息//inout:既是输入门又是输出门,既能发送消息也能接受消息simpleTxc12{parameters:@display(“i=block/routing”);gates:inoutgate[];//declaretwowayconnections声明双向连接}

    2025年6月6日
    4
  • 【阅读笔记】数据分析思维:分析方法和业务知识

    【阅读笔记】数据分析思维:分析方法和业务知识这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Mar

    2022年6月7日
    96
  • 终端terminal个性化配置[通俗易懂]

    终端terminal个性化配置[通俗易懂]http://blog.csdn.net/pipisorry/article/details/39584489{本文介绍linux终端字体颜色设置、终端提示符显示内容设置、自定义alias命令}linux打开终端快捷键:ctrl+alt+t新窗口中打开ctrl+shift+t新标签页中打开个人配置文件介绍系统默认状态下的终端显示为紫底白字(皮皮的…

    2022年7月13日
    15
  • 子网划分和计算方法(附习题详解)

    子网划分和计算方法(附习题详解)一.子网划分作用1.计算网络号,通过网络号选择正确的网络设备连接终端设备1)清楚IP地址四点段点分十进制数和子网掩码,对应的网络号是什么2)交换机是用来连接相同网络的设备,路由器是用来连接不同网段的设备网络号一样的,即在相同网段,网络号不一样的,即不同网段3)计算方法把十进制数的IP地址换算成二进制数,把子网掩码也由十进制数换算成二进制数,两对二进制数对齐做“与”运算,即可得出网络号。2.根据网络的规模,可以对局域网(内网)进行网络地址规划二.IP地址格…

    2022年6月27日
    34
  • SQL Server 文章目录

    SQL Server 文章目录

    2022年3月3日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号