时间:2021-05-18
JSON 格式可以说是目前最流行的数据传输格式了,被广泛应用于前后端通信,尤其是在 SPA 应用中,JSON 数据通过 HTTP 协议进行传输,具有体积小、易序列化、可读性好等优点。(当然,这些优点是相对的,例如体积小是相对于 XML 而言的,如果跟 protobuf 比,那体积就大多了。)
JSON 虽好,但是仍有两大痛点让开发者苦恼不已:
目前的标准是不能添加注释,如果想添加的话,只能曲线救国了,例如我是这么干的:
总结下来一般有下面三种方法:
1、使用约定的 key 作为注释字段:
如以 //, _comment,#####,—--— (# 或 - 的个数自定) 作为注释的 key 等。
2、使用重名 key 作为注释:
即每个 key,使用两次,第1次做注释,第2次做实际属性。
3、使用字段 key 加前缀做注释 key:
常用的前缀有 #, _ 等。
序列化之后的 key 被加上了双引号,例如:
仔细观察可以发现,对象的 key 是没有双引号的,但是序列化之后,两边都被加上了引号,导致字符数量变多了,那问题就来了:
这里先说一个历史背景:
在 ECMAScript 3 中,保留字是不能作为对象的 key 的,例如:{function: 0} // 语法错误{if: 0} // 语法错误{true: 0} // 语法错误只能给 key 添加双引号或单引号:{"function": 0} // Ok{"if": 0} // Ok{"true": 0} // Ok但是在 ES5 之后,保留字也是可以作为 key 的了,因此在不考虑向后兼容的情况下,如果能把 JSON 对象表示成跟 JavaScript 对象一模一样,只是把中间的空格、换行等删掉该多好呀!
你想要的,它都有!这就是 JSON5 标准,它有以下特性:
对象的 key 可以跟 JavaScript 中对象 key 完全一致
末尾可以有一个逗号
末尾可以有一个逗号
支持单行和多行注释
允许多余的空格
可以看到,JSON5 比 JSON 强大很多,是 JSON 的超集,就好比 TypeScript 相较于 JavaScript。安装方法为:
序列化示例:
反序列化示例:
看到这里,不禁感叹,这才是 JSON 应该有的样子!你说呢?
到此这篇关于浅谈JSON5解决了JSON的两大痛点的文章就介绍到这了,更多相关JSON5内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
痛点json是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,在通信过程中大量被使用。你是否遇到过json中某个字段填入某种类型都适合而陷入两难境地&
陌生社交产品必须着重于解决两大痛点: 1、社交主体差距过大。 2、缺乏有价值的场景和话题。 所以让用户摆脱枯燥乏味的生活,得到现实中没有的社交体验,只
本文实例讲述了thinkphp5+ajax使用formdata提交数据(包括文件上传)后台返回json。分享给大家供大家参考,具体如下:知识点总结1.json格
例如:'胥'经过json_encode处理后变为'\u80e5',最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证
问题你想读写JSON(JavaScriptObjectNotation)编码格式的数据。解决方案json模块提供了一种很简单的方式来编码和解码JSON数据。其中