最近在做系统模块重构时遇到一个小问题:如何将一个带格式的JSON字符串转换成不带格式的、“拉平”的JSON字符串?在解决这个小问题时花费了不少时间,请教了好几个同事。因此感觉很有必要写文纪念一下,让后人少走一些弯路,同时也对JSON使用经验做个总结。
学习任何技术本质上都是在学习它的历史,JSON是如何产生的,最初用于解决什么问题?
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,它采用完全独立于编程语言的文本格式来存储和表示数据。JSON是Douglas Crockford在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式(以上内容整理自百度百科)。
通过工程实践,我总结了一些JSON的使用技巧和经验,分享给大家:
1、注意JSON接口风格的统一。例如变量名称风格一致,都使用小写的类似"name":"value"格式,中英文尽量不混合使用。还有一种统一是指数字和字符串类型保持统一,例如"num":10和"num":"10"都是正确的JSON风格,前者的值是数字,而后者是字符串,整体风格最好保持统一(写到这里的时候,情不自禁想到了自己之前一些糟糕的JSON接口设计,真是往事不堪回首啊)。
2、JSON和protobuf相互转化使用开源软件json2pb,而不要自己造轮子。json2pb真的非常好用,用它能快速做出很多实用的工具,例如利用JSON串生成模拟数据(JSON转换为pb)、解析pb文件(pb转换为JSON&#