文章目录

  • 一、问题
  • 二、空格与 NBSP
  • 三、解决

一、问题

今天编辑腾讯文档,加了一个代码块,复制了一段 json 进去,后来产品到该文档里去取这个 json,使用小米推送进行推送,发现推送死活显示不出来,可是之前测试的时候明明是好的,对比了之前的 json 和腾讯文档里的 json,乍看之下没什么区别,研究了很久,才发现问题所在。

就是这两个:

腾讯文档(以下称副本):{ "a":""}
txt文件(以下称原件):{ "a": ""}

看起来一模一样,在 sublime Text 中选中它们,就会发现一点异常,一个的空格2个点,一个是4个点:


再看下它们的 unicode 表示:

副本:{ "a":""}

\u007b\u00a0\u0020\u00a0\u0020\u0022\u0061\u0022\u003a\u0022\u0022\u007d

原件:{ "a":""}

\u007b\u0020\u0020\u0020\u0020\u0022\u0061\u0022\u003a\u0022\u0022\u007d

为了方便观察,我把它们都列出来:
(unicode 对照表可查看这里)

可以看到,它们的区别在于 { 后面的空格,副本 json 是 \u00a0\u0020 交替,原件都是 \u0020

\u00a0 代表 NBSP,\u0020 代表空格。它们有什么区别呢?

二、空格与 NBSP

空格,就是普通的空格。

NBSP,即 Non-breaking space,不间断空格。它是一个连接符,通常用在 Word 中,使多个单词组成的词组不被换行间断,即让这个词组都显示在一行。

如“微信”是一个词组,在 Word 中,可能会出现这样的情形,“微信”被分成了两行,看起来会有一点困扰。

如果给“信”前面加一个 NBSP(通过 ctrl + shift + space 添加),就会变成这样,“微信”都显示在第二行。

三、解决

经测试,腾讯文档会把两个空格(即\u0020\u0020),转为一个 NBSP 和一个空格(即\u00a0\u0020)。

怎么解决呢?

  • 可以把 json 复制到 ide 中,ide 的字符串是带样式的,腾讯文档不会修改空格。

  • 如果使用 Sublime Text 的 Pretty JSON 来格式化 JSON 的话,格式化后默认缩进是 2 个空格,这时复制到腾讯文档就会有问题,可以修改一个 Pretty JSON 的配置,改为使用 tab 来缩进,这样复制也不会有问题。

修改方法:
打开 Preferences-Package Settings-Pretty JSON-Settings-Defalut:

将 “indent” 的值改为 ‘\t’:

空格、NBSP 造成的 JSON 解析失败问题相关推荐

  1. [js] 处理字符串换行造成的json解析失败

    需求:从数据库某个字段取出字符串出来,转为json,结果发现报错为 解析失败,发现是因为取出的字符串换行导致,现在需要将字符串里面的换行替换为'',使字符串可依成功解析成json对象. 技术:依靠re ...

  2. python post json 解析失败_python中json对象转换出错解决方法

    今天在使用python中的json转换碰到一个问题: 接收一个post的json字符串: s={"username":"admin","passwor ...

  3. python post json 解析失败_python – Flask RESTful POST JSON失败

    我有一个问题,通过curl从cmd( Windows7)发布 JSON到Flask RESTful. 这就是我发布的内容: curl.exe -i -H "Content-Type: app ...

  4. 【解决】json字符串解析失败json.decoder.JSONDecodeError

    解决json解析失败报错:json.decoder.JSONDecodeError 最近遇到一个json字符串解析失败的问题,原因是json里面的":这个两个符合和一些特殊符号在搞鬼,报错如 ...

  5. 谷歌的json解析器Gson在Android/Java中的常用工具类

    gson解析器,可实现子类和json字符串之间互转 package com.hulk.ues.core;import android.text.TextUtils; import android.ut ...

  6. JavaScript JSON解析

    最近在uniapp中遇到了一个bug,排查后是json解析的问题.对uniapp开发比较熟悉的,应该会知道uni.navigateTo 这个API方法.这是官方提供用于跳转页面的方法. 有时候我们在跳 ...

  7. pythonjson数据解析失败_json解析失败是什么意思

    因为代码的不美观等因素,我们会使用一些解析工具进行处理,有些人在解析时出现了报错.解析失败需要考虑多方面的因素,如格式.String类型.boolean类型等原因,在格式上分为格式错误和格式正确两种讨 ...

  8. android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...

    ####问题描述 * java 解析多层含有泛型对象的json数据获取不到泛型类型 * 如果将泛型改成实际的类型就能正常解析 * 如果不改成实际的类型泛型数据被解析成com.google.gson.i ...

  9. android json解析异常,json数据解析异常而导致网络请求失败的解决办法(其一)

    问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口时并未考虑Android端的json数据的解析,导致接口是这样的.... 正确请求 { " ...

  10. cJSON_译(C中的超轻量级JSON解析器)

    cJSON ANSI C中的超轻量级JSON解析器. 通行证 执照 版权所有(c)2009-2017 Dave Gamble和cJSON贡献者 特此免费授予获得此软件和相关文档文件("软件& ...

最新文章

  1. ESTL:新型多重扩增子测序法可实现污水中 SARS-CoV-2 RNA 的精确定量和病毒溯源...
  2. 存储的学习:freenas使用记录
  3. 《精通Python设计模式》学习结构型之享元模式
  4. php-cgi 68%,php cgi 进程占用太多怎么办
  5. linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  6. 如何管理kvm虚拟机的时钟源
  7. Spring Boot细节挖掘(Redis的集成)
  8. 读书笔记_量化交易如何建立自己的算法交易01
  9. 使用WCF实现消息推送
  10. php null空值(转)
  11. 第五章 线性回归 学习笔记下
  12. (十)瑞芯微rk3568 中qt工程ffmpeg 拉取rtsp视频流
  13. 微信小程序关于map地图
  14. UART串口通信协议详解
  15. html中class类怎么写,HTML class 属性 | 菜鸟教程
  16. -webkit-background-clip属性不生效问题
  17. TSC条码打印机 条形码ActiveXbarcode()方法参数详解
  18. Redis-Java客户端
  19. Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed
  20. idea2021版本添加上一步和下一步操作到工具栏

热门文章

  1. 金彩教育:提升产品标签的方法
  2. 2022年面试,整理全网初、中、高级常见 Java 面试题
  3. 屏蔽烦人的网易云音乐评论区(附防颓小技巧)
  4. 无损音乐刻录成cd有意义吗_无损和CD不一样?无损音乐的“玄学”知多少?
  5. mysql 生日提醒
  6. 计算机科学家王选 题,李星、王永民获2016年王选奖
  7. 英飞凌XC2000系列——汽车ECU Bootloader 设计详解
  8. web网页常见特效3——轮播图
  9. OutLook添加网易邮箱,QQ邮箱
  10. Keil C51对C语言的关键词扩展之八: far