- 主题:定义了一套极简主义的二进制json格式 nbJSON
改key的话自己注意不用特殊字符就可以省略长度和括号
改value的话, 原来json也要用程序来处理转义(或者binary的base64编码)的问题, 现在用程序处理长度前缀, 是一样的
二进制json方案,我这个是唯一可手写拼串和解码, 可以不用库的, 其他方案都太复杂
【 在 foliver 的大作中提到: 】
json能够流行就是在于它一眼就可读,手写也很方便,如果不追求可读,那就有很多替代方案。
你可以看似简化,但是它违反了第一眼可读可写原则,举个例子,改个字段还要考虑同步修改长度,就这一点就不可行。
【 在 ABCDEFGHJKLM 的大作中提到: 】
: 省掉冒号,引号,逗号,转义符, 支持二进制
:
: 【 在 speedboy2998 的大作中提到: 】
: ...................
--来自微微水木3.5.14
--
修改:ABCDEFGHJKLM FROM 123.113.97.*
FROM 123.113.97.*
[{4(key1)6(value1)4(key2)6(value2)}{5(bytes)3(\x01\x02\x03)}]
相当于json的 [{"key1":"value1", "key2":"value2"}, {"bytes":"\x01\x02\x03"}]
会有正常人觉得上一行可读性比下一行好吗?
--
FROM 139.227.98.*
看完啊, 最下面的最简例子
[{ key1 value1 key2 value2 }
{ bytes 256(\x00...\xFF) }]
json 因为盲目抄 c/java, 用转义符描述二进制,占用 400%空间
base64是 133%空间且不能用二进制编辑器可读
本方案直接存二进制,是100%空间
【 在 gokiller 的大作中提到: 】
[{4(key1)6(value1)4(key2)6(value2)}{5(bytes)3(\x01\x02\x03)}]
相当于json的 [{"key1":"value1", "key2":"value2"}, {"bytes":"\x01\x02\x03"}]
会有正常人觉得上一行可读性比下一行好吗?
--
修改:ABCDEFGHJKLM FROM 123.113.97.*
FROM 123.113.97.*
感觉你像个傻子
【 在 ABCDEFGHJKLM 的大作中提到: 】
: 扩充了,允许在无歧义的情况下省略长度前缀和括号,
: [{ key1 value1 key2 value2 }
: { bytes 256(\x00...\xFF) }]
: ...................
--
FROM 101.229.51.*
那你就别扯啥可读性了。你这套东西可读性基本为0
【 在 ABCDEFGHJKLM 的大作中提到: 】
: 看完啊, 最下面的最简例子
: [{ key1 value1 key2 value2 }
: { bytes 256(\x00...\xFF) }]
: ...................
--
FROM 101.228.150.*