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

[json]定义、读写

对象结构

对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。语法如下:

{ "键名1":1, "键名2":2, …… "键名n":值n };

其中,jsonObj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false12。

例如:

var jsonData = {
“name”: “Tom”,
“age”: 18,
“city”: “Shanghai”
};

数组结构

数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。语法如下:

[ { "键名1":1, "键名2":2 }, { "键名3":3, "键名4":4 }, …… ];

其中,arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟JSON对象不同。在JSON数组中,每一对“{}”相当于一个JSON对象,语法都非常类似12。

混合结构

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
import json# 示例配置信息
config_data = { "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}# 将配置信息写入 JSON 文件
with open('config.json', 'w') as json_file:# indent:每个JSON对象前面都会有4个空格的缩进json.dump(config_data, json_file, indent=4)
# 打开JSON文件并读取内容
with open('config.json', 'r') as f:data = json.load(f)# 访问配置信息
username = data['programmers'][0]['firstName']print(username)

运行结果

Brett

相关文章:

  • 智慧文旅云平台建设方案:PPT全文30页,附下载
  • 一个最小的物联网系统设计方案及源码(一)——系统组成
  • 实验8:游标和存储过程
  • 使用ansible命令部署k8s集群
  • 独立完成软件的功能的测试(3)
  • 界面控件DevExpress WPF导航组件,助力升级应用程序用户体验!(下)
  • 【unity】【WebRTC】从0开始创建一个Unity远程媒体流app-设置输入设备
  • CMakeLists.txt与package.xml依赖项比较
  • 概率论之 证明 正态分布的上a 分位点的对称的性质
  • 网络安全——基于Snort的入侵检测实验
  • Spring boot注解
  • YOLOv8改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv8(超级轻量化精度更高)
  • SpringBoot系列之基于Jedis实现分布式锁
  • 基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(二)
  • class类实现operator==重载
  • JS 中的深拷贝与浅拷贝
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Java的Interrupt与线程中断
  • laravel 用artisan创建自己的模板
  • Making An Indicator With Pure CSS
  • python大佬养成计划----difflib模块
  • quasar-framework cnodejs社区
  • springMvc学习笔记(2)
  • Web Storage相关
  • 飞驰在Mesos的涡轮引擎上
  • 服务器从安装到部署全过程(二)
  • - 概述 - 《设计模式(极简c++版)》
  • 简析gRPC client 连接管理
  • 开发基于以太坊智能合约的DApp
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 详解NodeJs流之一
  • 第二十章:异步和文件I/O.(二十三)
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #stm32整理(一)flash读写
  • (1)STL算法之遍历容器
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (论文阅读11/100)Fast R-CNN
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)appium-desktop定位元素原理
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)平衡树
  • (转载)Google Chrome调试JS
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET基础篇——反射的奥妙
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /etc/sudoers (root权限管理)