了解 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 个空格缩进。

“点赞有美意,赞赏是鼓励”
相关文章:
了解 JSON 格式
一、JSON 基础 JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的数据交换格式,JSON 的设计目的是使得数据的存储和交换变得简单。 JSON 易于人的阅读和书写,同时也易于机器的解析和生成。尽管 J…...
[RDMA] 高性能异步的消息传递和RPC :Accelio
1. Introduce Accelio是一个高性能异步的可靠消息传递和RPC库,能优化硬件加速。 RDMA和TCP / IP传输被实现,并且其他的传输也能被实现,如共享存储器可以利用这个高效和方便的API的优点。Accelio 是 Mellanox 公司的RDMA中间件,用…...
typescript报错:‘name‘ was also declared here
问题再现 用 Typescript 时, 遇到一个声明常量 name 的报错。代码如下: let name:string"zhangsan"; let num:number1001;执行编译时报错: 原因 在默认状态下,typescript 将 DOM typings 作为全局的运行环境&#…...
第十章:联邦学习视觉案例
代码 传送门...
c语言——输出一个整数的所有因数
//输出一个整数的所有因数 #include<stdio.h> #include<stdlib.h> int main() {int number,i;printf("输入整数:");scanf("%d",&number);printf(" %d 的因数有: ",number);for(i1;i<number;i){if(numb…...
mqtt学习记录
目录 1 匿名登录2 ⽤户名密码登录,配置接收的主题mosquitto 配置文件修改添加⽤户信息添加topic和⽤户的关系登录演示 3 遗嘱机制 1 匿名登录 ⾸先打开三个终端, 启动代理服务:mosquitto -v -v 详细模式 打印调试信息 默认占⽤:…...
爬虫逆向实战(十八)--某得科技登录
一、数据接口分析 主页地址:某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密? 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密? 无…...
Java-数组
什么是数组 数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 在java中, 数组中存放的元素其类型相同数组的空间是连在一起的每个空间有自己的编号,起始位置的编号为0,即数组的下标。 数组的创建及初始化 数…...
Dart 入门Hello world
1、下载Dart sdk IntelliJ & Android Studio | Dart 2、安装Dart 插件 3、安装后重启IDEA,创建Dart项目 4、创建dart文件 5、编写函数: void main() {print("Hello world"); } 6、运行: 官网学习:Dart 语言开发文…...
HTML是什么?
HTML是什么? 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器…...
【UniApp开发小程序】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
文章目录 界面效果界面实现工具js页面日期格式化 后端收藏ControllerServicemapper 评论ControllerServiceMapper 商品Controller 阅读Service 界面效果 【说明】 界面中商品的图片来源于闲鱼,若侵权请联系删除 【商品详情】 【评论】 界面实现 工具js 该工…...
rabbitMq安装后无法启动可视化页面http://localhost:15672处理
本次安装环境信息: 系统:win10 64位专业版 erlang:otp_win64_23.0 rabbitMQ:rabbitmq-server-3.8.5 安装rabbitMQ需要依赖erlang语言环境,所以需要我们下载erlang的环境安装程序。 一、下载安装程序 rabbitMQ安装…...
材料行业可以转IC设计后端吗?
近来有许多材料行业的小伙伴通过后台来问我对于职业规划的看法,甚至有些小伙伴直接点明了某个行业适不适合自己,那么我这边仅以近年来比较热门的数字芯片设计来展开讲讲,材料适不适合转行做IC呢。 对于理工科的同学而言,选择哪个…...
vue3 基础知识
vue3创建一个项目 PS D:\code> npm init vuelatestVue.js - The Progressive JavaScript Framework√ Add TypeScript? ... No / Yes √ Add JSX Support? ... No / Yes √ Add Vue Router for Single Page Application development? ... No / Yes √ Add Pinia for sta…...
【线性代数-3Blue1Brown】- 2 线性组合、张成的空间与基
飞书原文链接:Docs...
Kafka—工作流程、如何保证消息可靠性
什么是kafka? 分布式事件流平台。希望不仅仅是存储数据,还能够数据存储、数据分析、数据集成等功能。消息队列(把数据从一方发给另一方),消息生产好了但是消费方不一定准备好了(读写不一致)&am…...
用户参与策略:商城小程序的搭建与营销
在现今数字化时代,商城小程序已成为企业私域营销的利器。然而,要使商城小程序在竞争激烈的市场中脱颖而出,不仅需要出色的产品,还需要一个引人入胜的用户参与策略。本文将深入探讨如何在商城小程序中构建和落实有效的用户参与策略…...
可自定义实时监控系统HertzBeat
什么是 HertzBeat ? HertzBeat是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。集 监控告警通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监…...
无涯教程-Perl - sysread函数
描述 该函数等效于C /操作系统函数read(),因为它绕过了诸如print,read和seek之类的函数所采用的缓冲系统,它仅应与相应的syswrite和sysseek函数一起使用。 它从FILEHANDLE中读取LENGTH个字节,并将输出放入SCALAR中。如果指定了OFFSET,则将数据从OFFSET字节写入SCALAR,从而有效…...
Redis数据结构之String
String 类型是 Redis 的最基本的数据类型,一个 key 对应一个 value,可以理解成与Memcached一模一样的类型。 String 类型是二进制安全的,意思是 Redis 的 String 可以包含任何数据,比如图片或者序列化的对象,一个 Redi…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
