当前位置: 首页 > news >正文

了解 JSON 格式

一、JSON 基础

JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的数据交换格式,JSON 的设计目的是使得数据的存储和交换变得简单。

JSON 易于人的阅读和书写,同时也易于机器的解析和生成。尽管 JSON 是 JavaScript 的一个子集,但 JSON 是独立于语言的文本格式。

二、JSON 语法

JSON 语法是 JavaScript 语法的子集,JSON 数据的表示方法如下:

数据由键值对构成,键和值之间使用冒号 : 分隔,键必须使用双引号 "" 包围。每个键值对之间使用逗号 , 分隔。

大括号 { } 保存对象,方括号 [ ] 保存数组。

例始,以下是一个简单的 JSON 对象,它表示了一个人的信息,包括姓名、年龄和爱好。

{"姓名": "小明","年龄": 20,"爱好": ["阅读", "音乐", "电影"]
}

三、JSON 数据类型

JSON 支持以下数据类型:

字符串

string

由双引号包围的一串 Unicode 字符。

例如:"小明"。

数字

number

整数或浮点数。

例如:25,或者,3.14。

对象

object

无序的键值对集合。

例如:{"姓名": "小明", "年龄": 25}。

数组

array

有序的值集合。

例如:["阅读", "音乐", "电影"]。

布尔值

boolean

true 和 false。

null

表示空值或无值,写成 null。

对象和数组可以嵌套使用,以实现更复杂的数据结构。

{"name": "中国","province": [{"name": "黑龙江","cities": {"city": ["哈尔滨", "大庆"]}}, {"name": "广东","cities": {"city": ["广州", "深圳", "珠海"]}}, {"name": "台湾","cities": {"city": ["台北", "高雄"]}}, {"name": "新疆","cities": {"city": ["乌鲁木齐"]}}]
}

可以使用任意文本编辑器,根据 JSON 格式的规则,编写键值对、数组和对象等,然后将编写好的内容保存为一个以 .json 为后缀的文件。

JSON 文件编码通常使用 UTF-8。

四、JSON 数据的解释和生成

大多数编程语言都有内置函数可以将 JSON 文本转换为对应语言的数据结构。

例如,在 JavaScript 中,我们可以使用 JSON.parse() 函数将 JSON 文本转换为 JavaScript 对象。

let text = '{"name": "John", "age": 30}';
let obj = JSON.parse(text);
console.log(obj.name);  // 输出 "John"

再例如,在 Python 中,我们使用 json 模块的 loads 方法将 JSON 数据解析为 Python 对象。

import jsonjson_string = '{"姓名": "小明", "年龄": 30}'
python_obj = json.loads(json_string)
print(python_obj["姓名"])  # 输出 "小明"

在上面这个例子中,我们将 JSON 字符串 {"姓名": "小明", "年龄": 30} 转换为了 Python 对象,并打印出了姓名的值。

与解析相反,序列化是将编程语言的数据结构转化为 JSON 文本的过程。

例如,在 JavaScript 中,我们可以使用 JSON.stringify() 函数进行序列化。

let obj = {"name": "John", "age": 30};
let text = JSON.stringify(obj);
console.log(text);  // 输出 '{"name":"John","age":30}'

再例如,在 Python 中,我们可以使用 json 模块的 dumps 方法将 Python 对象转换为 JSON 字符串。

import jsonpython_obj = {"name": "John", "age": 30}
json_string = json.dumps(python_obj)
print(json_string)  # 输出 '{"name": "John", "age": 30}'

五、JSON 文件的读写

以 Python 为例,读取和写入 JSON 文件也是通过 json 模块来实现的。

在下面例子中,我们首先打开名为 data.json 的文件,然后使用 json.load( ) 函数将 JSON 文件的内容转换为 Python 对象。json.load( ) 函数的参数是一个文件对象,它将从这个文件对象中读取 JSON 数据并返回对应的 Python 对象。

import json# 打开文件并加载为 Python 对象
with open('data.json', 'r', encoding='utf-8') as f:data = json.load(f)print(data)

在下面例子中,我们首先创建了一个 Python 对象 data,然后使用 json.dump( ) 函数将这个 Python 对象转换为 JSON 数据并写入 output.json 文件。

import jsondata = {"姓名": "小明","年龄": 30,"爱好": ["阅读", "音乐", "电影"]
}# 将 Python 对象转换为 JSON 格式,并写入文件
with open('output.json', 'w', encoding='utf-8') as f:json.dump(data, f, ensure_ascii=False, indent=4)

上面例子中,json.dump( ) 函数的第一个参数是要转换的 Python 对象,第二个参数是一个文件对象,它将把转换得到的 JSON 数据写入这个文件对象。ensure_ascii=False 参数使得中文字符能正确地被写入,indent=4 参数表示在输出的 JSON 数据中,使用 4 个空格缩进。

6954f060e07a0f1ca35aeaf4064d7866.jpeg

“点赞有美意,赞赏是鼓励”

http://www.lryc.cn/news/132672.html

相关文章:

  • [RDMA] 高性能异步的消息传递和RPC :Accelio
  • typescript报错:‘name‘ was also declared here
  • 第十章:联邦学习视觉案例
  • c语言——输出一个整数的所有因数
  • mqtt学习记录
  • 爬虫逆向实战(十八)--某得科技登录
  • Java-数组
  • Dart 入门Hello world
  • HTML是什么?
  • 【UniApp开发小程序】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
  • rabbitMq安装后无法启动可视化页面http://localhost:15672处理
  • 材料行业可以转IC设计后端吗?
  • vue3 基础知识
  • 【线性代数-3Blue1Brown】- 2 线性组合、张成的空间与基
  • Kafka—工作流程、如何保证消息可靠性
  • 用户参与策略:商城小程序的搭建与营销
  • 可自定义实时监控系统HertzBeat
  • 无涯教程-Perl - sysread函数
  • Redis数据结构之String
  • React源码解析18(8)------ 实现单节点的Diff算法
  • 并查集路径压缩(Java 实例代码)
  • Educational Codeforces Round 153 (Rated for Div. 2)
  • 分布式 | 如何搭建 DBLE 的 JVM 指标监控系统
  • 下线40万辆,欧拉汽车推出2023款好猫尊荣型和GT木兰版
  • 【Python】使用python解析someip报文,以someip格式打印报文
  • C#与西门子PLC1500的ModbusTcp服务器通信2--ModbusTcp协议
  • SpringBoot + MyBatis-Plus构建树形结构的几种方式
  • linux vscode 下开发
  • 【工具】python代码编辑器--PyCharm下载安装和介绍
  • SpringBoot第44讲:SpringBoot集成Redis - Redis分布式锁的实现之Jedis(setNXPX+Lua)