最近学校做项目,项目需求中要求我们按照json文件的内容对流量进行处理,这篇文章简单记录一下json的结构和内容。
1.什么是json?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
总结一下就是:
1. JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
2. JSON 是轻量级的文本数据交换格式
3. JSON 独立于语言
4. JSON 具有自我描述性,更易理解
5. JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
2.json的基本数据类型
- 数值:十进制数,不能有前导0,可以为负数,可以有小数部分。还可以用
e
或者E
表示指数部分。不能包含非数,如NaN。不区分整数与浮点数。JavaScript用双精度浮点数表示所有数值。 - 字符串:以双引号" "括起来的零个或多个Unicode码位。支持反斜杠开始的转义字符序列。
- 布尔值:表示为
true
或者false
。 - 数组(array):有序的零个或者多个值。每个值可以为任意类型。序列表使用方括号
[
,]
括起来。元素之间用逗号,
分割。形如:[value, value]
- 对象(object):一个无序的“键-值对”(pair),其中键是字符串。建议但不强制要求对象中的键是独一无二的。对象以花括号
{
开始,并以}
结束。键-值对之间使用逗号分隔。键与值之间用冒号:
分割。 - null类型:值写为
null
json文件格式很简单,我觉得json格式和PHP、java序列化结果有点类似,比如key和value中间都用 ":" 连接,当然json比较简单,并没有序列化那么复杂,格式只有两种:
1.键值对
对象是一个无序的键值对集合,一个对象以 "{" 开始, "}" 结束。每一个名称(key)后跟一个 ":" ; 键值对之间使用 "," 分隔。
2.数组
数组是值(value)的有序集合。一个数组以 "[" 开始, "]" 结束。值之间使用 "," 分隔。
示例:
{ "TEST":[{ "pkg_no":0, "offset":0, "content":"a0a8", "protocol":"udp" }, { "pkg_no":1, "offset":2, "content":"be2c1f" }] }
3.json数据读取和写入
使用python就可以很方便的读取json文件的数据和将数据写入json文件中。
# 写入 JSON 数据 with open('data.json', 'w') as f: json.dump(data, f) # 读取数据 with open('data.json', 'r') as f: data = json.load(f)