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

map转json字符串 转义符(map转换为json对象)如上图所示 这一个标准的 json 字符串 双引号需要使用反斜杠进行转义 一般情况下 我们是用不到这种 json 字符串的 在 java 中 json 字符串的通常表现形式是这种 其本质还是 json 对象 并不是真正意义上的 json 字符串 即使将 json 对象转字符串 哪里会用到上面那种带转义符的 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区别对比

小讯
上一篇 2025-06-08 11:20
下一篇 2025-05-13 21:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/176757.html