一、概念
JSON是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得JSON成为理想的数据交换语言。
- 序列化:将数据结构或对象转换成二进制串的过程。
- 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
二、作用:
- 序列化:在传递和保存对象时,保证对象的完整性和可传递性。对象转化为有序字节流,以便在网络上传输或者保存在本地文件中。
- 反序列化:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。
三、指标
- 通用性:序列化协议是否支持跨平台、跨语言。
- 强健性/鲁棒性
- 可调试性/可读性:良好的调试性和可读性大大的提高开发效率;
- 时间复杂度和空间复杂度:
空间开销(Verbosity),序列化需要在原有的数据上加上描述字段为反序列化解析用。如果序列化过程引入的额外开销过高,可能会导致过大的网络,磁盘等各方面的压力。对于海量分布式存储系统,数据量往往以TB为单位,意味着高昂的成本。
时间开销(Complexity),复杂的序列化协议会导致较长的解析时间,这可能会使得序列化和 反序列化阶段成为整个系统的瓶颈。 - 可扩展性/兼容性、安全性/访问限制
四、JSON概述
JSON(JavaScript Object Notation)JavaScript对象表示法,是一种轻量级的数据交换格式。
易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language,Standard ECMA-262 3rdEdition-December 1999的一个子集。
五、JSON的内容设计
六、JSON样例
{ "deviceCode":"123456789","content":
[
{"timestamp":1526266000,"content":
[{"dataname":"humidity","value":40,"abnormity":0},
{"dataname":"temperature","value":"25.5℃","abnormity":0},
{"dataname":"luminance","value":276,"abnormity":0}
]
},
{"timestamp":1526266011,"content":
[{"dataname":"Ua","value":"220.1","abnormity":0},
{"dataname":"Ub","value":"223.0","abnormity":0},
{"dataname":"Uc","Value":"222.4","abnormity":0}
]
}
]
}
七、JSON的文件
- JSON文件的文件类型是“.json” ;
- JSON文本的MIME类型是“application/json”;