json文件格式

最近学校做项目,项目需求中要求我们按照json文件的内容对流量进行处理,这篇文章简单记录一下json的结构和内容。

1.什么是json?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming LanguageStandard 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)

  

 

posted @ 2020-09-02 22:26  s1awwhy  阅读(1149)  评论(0编辑  收藏  举报