当前位置:网站首页 > Vue.js开发 > 正文

map转json字符串 转义符(map转换为json对象)



  如上图所示,这一个标准的json字符串,双引号需要使用反斜杠进行转义,

  一般情况下,我们是用不到这种json字符串的,在java中,json字符串的通常表现形式是这种:

  其本质还是json对象,并不是真正意义上的json字符串(即使将json对象转字符串),哪里会用到上面那种带转义符的json字符串?(下面示例)

  完整请求参数:

  后台用实体类接收,且Person用的是字符串String来接收的

  一般情况下,是不会出现这种变态需求的,明明是json对象,却用字符串接收,我们通常通过java后台发送http请求时,往往传送的数据格式是这样的:

  而我们一旦使用这种标准的json数据格式发送请求,对方服务器在接收到数据后往Person里塞数据时,将会报错:大致信息是-需要的是字符串,提供的却是json对象。

  ↓↓↓如果是想在json对象里嵌套json字符串,直接看最后↓↓↓

  如何生成这种格式的数据?

  准备工作:

  JSON对象常用的有两种:一种是net.sf.json.JSONObject,另一种是com.alibaba.fastjson.JSONObect

  错误示例一:调用原生的toString()方法

  这是java形式的json字符串,无论是net的toString()还是ali的toString()、toJSONString()方法,里面存的还是对象,并不是我们想要的结果

  错误示例二:使用FackJson

  import com.fasterxml.jacks on.core.io.JsonStringEncoder;

  这种是javascript形式的json字符串,虽然离目标近了,但还是不是我们想要的结果

  错误示例三:使用StringEscapeUtils

  import org.apache.commons.lang.StringEscapeUtils

  还是不行,生成的也是JavaScript形式的json字符串

  方式一:通过Jackson实现

  所需jar包:

  导入:

  代码实现:

  方式二:通过谷歌的Gson实现

  所需jar包:

  导包:

  代码实现:

  测试一:

  上面的这两种方式,会在生成的json字符串两边加上双引号

  测试二:

  方式一:

  方式二:

  方式三:

  方式四:Jackson核心包

  如果是json对象嵌套json字符串,则上面4种方式都可以实现(但不一定能用,未测试)。

  已知这种数据

  需要转成这种数据

2021-06-11

  我发现了一个诡异的情况,那就是:

  Map转Json,当Map的Value带有闭合标签时,转化成json后,会被强制添加转义符"",一起来看下:

  使用net.sf.json将map转json

  被强制添加了转义符

  解决办法:

  使用com.alibaba.fastjson

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

  • 个人主页
  • java JSON
  • Java 实体类转json对象,属性名转key后首字母强制被转成小写的解决方案
  • json,fastjson,Jackson,Gson区别对比
到此这篇map转json字符串 转义符(map转换为json对象)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • pcie5.0(pcie5.0电源)2026-02-24 07:18:06
  • vmware密钥是什么(vmware 15.5.6密钥)2026-02-24 07:18:06
  • nvme2.0接口(nvme2.0接口速度)2026-02-24 07:18:06
  • Vue安装脚手架(vue安装脚手架3.0使用淘宝镜像安装速度过慢)2026-02-24 07:18:06
  • vuerouter路由守卫(vuerouter路由守卫与生命周期的关系)2026-02-24 07:18:06
  • vue2父子组件传值props(vue父子组件如何传递参数)2026-02-24 07:18:06
  • redhat linux网络配置(redhat7.4配置网络)2026-02-24 07:18:06
  • vue2和vue3的底层原理(vue2跟vue3)2026-02-24 07:18:06
  • redhat linux忘记root密码(redhat6.8忘记root密码的解决办法)2026-02-24 07:18:06
  • vue3 路由守卫(vue3路由守卫添加路由,不能访问)2026-02-24 07:18:06
  • 全屏图片