json文件格式详解

2023-11-09

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成为理想的数据交换语言。

JSON建构于两种结构:

(1)“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

(2)值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

 

JSON具有以下这些形式:

1.对象

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

 

2.数组

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 

 

 

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。 

 

 

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 

字符串(string)与C或者Java的字符串非常相似。 

 

 

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

 

 

使用范例及注意事项

 

1.对象的每个属性都要有双引号,否则json数据不能正常加载

 

我们写一个python脚本做下测试:

 

import json

with open("data.json", 'r') as load_f:
    data=json.load(load_f)
    print(data)

 

 (1){"name":"taoeyhuang","age":18}

 

(2){"name":"taoeyhuang","age":18,"sex":"male",hair:"black"} 这里hair属性没有带双引号

 

 

异常日志“json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 44 (char 43)”

我们也可以看出异常的原因是双引号的问题

 

2.多对象范例(数组+对象)

 

数组中可以嵌套数组也可以嵌套对象

{

    "name": "BeJson",

    "url": "http://www.bejson.com",

    "page": 88,

    "isNonProfit": true,

    "address": {

        "street": "科技园路.",

        "city": "江苏苏州",

        "country": "中国"

    },

    "links": [

        {

            "name": "Google",

            "url": "http://www.google.com"

        },

        {

            "name": "Baidu",

            "url": "http://www.baidu.com"

        },

        {

            "name": "SoSo",

            "url": "http://www.SoSo.com"

        }

    ]

}

参考博客:http://www.json.org/json-zh.html

 

posted @ 2018-02-28 14:47 二十四向风 阅读( ...) 评论( ...) 编辑 收藏
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json文件格式详解 的相关文章

  • 知识蒸馏研究综述

    知识蒸馏研究综述 论文来源于 知识蒸馏研究综述 文章目录 知识蒸馏研究综述 知识蒸馏的提出 知识蒸馏的作用机制 蒸馏的知识形式 输出特征知识 中间特征知识 知识蒸馏的方法 知识合并 多教师学习 教师助理 跨模态蒸馏 相互蒸馏 终身蒸馏 自蒸
  • XSS闯关——第三关:level3

    第三关 level3 看页面和第二关类似 先用第二关的输入测试 gt 可惜没有成功 毕竟是第三关 在第二关上肯定有所升级 查看当前网页的源代码分析 可以发现我们的输入被后台改成了如下内容 输入的 gt lt 被做了转义处理 变成了 quot
  • 安卓开发课程设计报告

    湖南科技大学计算机科学与工程学院 综合实践能力创新实训 安卓开发课程设计报告 题 目 新 闻 客 户 端 学 号 17050103XX 姓 名 白马 完成时间 2019年12月15日 安卓开发 新闻客户端 1 设计要求 1 1 技术平台要求
  • 宝藏级的开源小程序(APP)商城-CRMEBPC版前台和手机版实测

    公司最近想新上一个项目 用APP对线下门店地推做产品推广 开始我们想找个研发APP公司来做一个简易APP来的 结果打了十来通电话 基本上报价都是在三万到五万之间 而公司又恰恰在起步阶段 所以就考虑放弃了自己开发 目光转向到了微信商城 可看完
  • Python 类内直接定义属性与self.属性名的区别

    class A test value1 value1 self test value3 value3 报错 无法定义 因为self代表的是类对象 def int self self test value2 value2 if name ma
  • GT--记录android app消耗的cpu/内存/流量 /电量

    腾讯GT简介 此apk是一款可以对APP进行测试的软件 可以在任何情况下快速测试手机app的CPU 内存 流量 电量 帧率 流畅度等性能测试 有安卓版本和ios版本 分别下载 1 下载腾讯GT http gt tencent com dow
  • torch 中的detach、numel、retain_graph、repeat、repeat_interleave等参数的用法

    detach 官网解释 实验结论 import torch x torch arange 4 0 x requires grad True 等价于 x torch arange 4 0 requires grad True y x x de
  • Unity EasySave3封装管理类

    20230804 新增 加密处理接口
  • python读取数据库PostgreSQL导出excel表格

    1 现有数据和目标成果 1 1现有数据 源数据保存在数据库中 使用的数据库管理软件是PostgreSQL 本质上来说 数据存储在数据库中是以记录存储在表上实现的 在excel表格中也是以记录的形式存在 所以数据库中表的列 字段 可以与exc
  • MinMaxScaler中的scale_属性和min_属性

    class sklearn preprocessing MinMaxScaler feature range 0 1 copy True 首先可以使用 数据归一化 scaler MinMaxScaler feature range 0 1
  • [激光原理与应用-43]:《光电检测技术-10》- 激光测距原理、方案与案例分析:TOF VL53L0X模块

    目录 第1章 激光测距概述 1 1 什么是激光测距 1 2 激光测距的特点 1 3 激光测距仪的形态 1 4 测距的类型 1 5 常见品牌 1 6 应用 第2章 测量原理 2 1 测量方法 2 2 测量方法分类 第3章 案例分析1 科扬光电
  • Javascript 与 ActionScript 中 null、NaN和undefined的区别

    AS中 其实Null NaN和undefined都是变量的默认初始值 变量类型不同 系统给与的初始值就不同 int uint 0Boolean falseNumber NaNString Array Object null未指定变量类型 u
  • 合宙Air105

    基于Air105开发板 Air105 LuatOS 文档 上手 开发上手 LuatOS 文档 前文 合宙Air105 摄像头 capture SPI Serial 串口 TFTLCD Micro SD卡 GC032A USB转TTL 官方d
  • Go操作supervisor xml rpc接口及注意事项

    Go操作supervisor xml rpc接口及注意事项 文章目录 Go操作supervisor xml rpc接口及注意事项 1 前言 2 管理web 3 go处理库 4 实时日志处理代码片段 1 前言 之前提到过目前我们的进程都是通过
  • 【python脚本】通过adb控制android手机

    使用adb连接手机 1 下载adb zip工具包 自行百度 2 解压后的文件夹中 有adb exe fastboot exe和两个dll扩展程序文件 3 打开cmd 进入到当前文件夹中 输入命令 adb devices 查看当前与电脑连接的
  • 使用jpa插入数据报错“could not execute statement; SQL [n/a];nested exception.DataException

    前言 在写开始采集接口 用swagger测试时 报了一个这样的错 使用jpa插入数据报错 could not execute statement SQL n a nested exception DataException 这个错误网上找了
  • 2020年研究生数学建模竞赛总结复盘

    文章目录 一 前言 二 赛题选择 三 做题思路 问题一 数据清洗 问题二 数据降维 问题三 建模预测 问题四 分析模型预测结果与实际值 问题五 可视化 四 总结 五 结果 三等奖 一 前言 今天是2020年研究生数学建模竞赛的最后一天 今早
  • git deamon 一个简单的git服务器

    git deamon 一个简单的git服务器 一 Git daemon 二 操作 三 参考 四 总结 一 Git daemon Git daemon是一个简单的git仓库服务器 可以用来共享局域网的本地仓库 二 操作 以下示例A电脑共享gi
  • 使用BindingList实现DataGridView的动态绑定

    在DataGridView数据绑定时使用BindingSource中转可以起到很好的控制DataGridView
  • 指针基础(2)【数组与指针】

    文章目录 写在前面 1 数组概述 1 1 一维数组 1 2 二维数组 1 3 多维数组 1 4 小结 2 C 中 vector 容器 2 1 定义和初始化 vector 对象 2 2 向 vector 对象中增加元素 2 3 vector

随机推荐

  • MQTT异常断开

    MQTT异常断开 讨论一下TCP链路的影响 MQTT异常断开 TCP链路原因的几种情况 三种情况 1 客户端发送了心跳请求 但是MQTT代理服务器Broker没有收到心跳请求 所以也不会回复客户端心跳响应 MQTT代理服务器Broker在
  • 前端 115道 面试题总结【持续更新...】

    前端面试题 1 说说你对useEffect的理解 可以模拟哪些生命周期 2 说说Real DOM和Virtual DOM的区别 优缺点 3 说说React中setState和replaceState的区别 4 说说React生命周期有哪些不
  • Web 开发中 20 个很有用的 CSS 库

    http www oschina net translate css libraries for developers
  • Android 开机加速优化

    文章目录 Android 开机加速优化 关闭BootLoader的企鹅 关闭开机动画Android 关闭锁屏 删除预装APP 查看预装APP 删除编译生成的APK 不编译APK 1 统一配置 2 修改单个APK的Android mk 谷歌A
  • 2022年5月计划(UE4视频教程+osgearth源码调试+ogreRenderSystem源码抄写)

    按照年度计划走就可以了 五一期间突击完了ue4第七套视频教程 客户端差不多了 各项终于达到什么都会 什么都不精了 没有短板 也没有长处 平衡进行就行了 包括久违的渲染 也可以引进了 以前如果单单干渲染是不行的 毕竟这种工作少 还要会引擎架构
  • springboot集成dubbo(详细配置)

    前言 首先要搭建zookeeper环境并启动 可参照window下搭建zookeeper 半生归来仍少年的博客 CSDN博客 dubbo管理平台搭建 下载 dubbo admin 2 5 8 war 互联网文档类资源 CSDN下载 放到to
  • 编译 java_如何编译java

    展开全部 用命令32313133353236313431303231363533e58685e5aeb931333337613139提示符编译java程序的步骤 1 先新建文本文档 输入自己的java程序 这里我写一个简单的java程序 来
  • 计算机网络arp表作用,arp映射表是什么?有什么作用

    在如今每一天的生活中大家都需要有网络的陪伴 相比于手机的4G流量和无线网卡 大家更钟爱于wifi 因为它能够更加方便的使用 可是在我们刚刚购买或者安装路由器的时候也会遇到很多的难题 比如说什么是arp arp映射表有什么作用 接下来就让我们
  • 关于医学影像中的轴位面(横断面)、冠状面、矢状面

    冠状位矢状位轴位图解 第1页 概述 该页主题为冠状位矢状位轴位图解的图片集 内容包含有冠状位 矢状位 横断位具体怎么辨别 谢谢 ct 解剖 颞骨大体解剖 轴位及冠状位ct断层图像 解剖 颞骨大体解剖 轴位及冠状位ct断层图像 图1 a 矢状
  • vue制作幻灯片时涉及的transition动画(动图)

    幻灯片使用频率很高 就是各个网站的轮播大图 为了使图片更加平滑的过渡 就考虑给幻灯片加上transition动画 先看实现的效果 然后再分析动画原理 上图可以看出 幻灯片是慢慢的滑出来 而不是一下一下的跳出来 1 transition动画原
  • 前端面试--大众点评

    学习了这么久 第一次面试前端 虽然只是电话面试 但是还是很紧张 主要问题 1 介绍你的项目 2 html的状态 3html5新增加的标签 4 css的display none和visibility区别 5 怎么清除浮动 6 jquery的选
  • 【TensorFlow 入门】7、定义图变量的方法

    1 tf Variable tf Variable init initial value trainable True collections None validate shape True name None 参数名称 参数类型 参数含
  • DNS服务器列表

    Public DNS IPv4 地址 首选 119 29 29 29 AliDNS 阿里公共 DNS IPv4 地址 首选 223 5 5 5 备用 223 6 6 6 114 DNS 常规公共 DNS 干净无劫持 首选 114 114 1
  • SpringCloud---Sentinel

    文章目录 限流 sentinel使用环境搭建 设置限流 默认直接模式 关联模式 链路模式 关闭URL PATH聚合 熔断 降级 设置模拟环境 满调用比例规则 Sentinel 异常处理模式 异常处理 自定义异常处理 热点 测试热点环境搭建
  • 用mysqldump备份及结合binlog日志恢复的全过程

    1 查看更新备份时的数据 mysql gt select from t1 id 1 2 3 2 因为我的存储引擎是Myisam 为了保证数据的一直我加了参数 l 备份时不能对数据更新 如果是innodb引擎加参数 single transc
  • Speed up calculation by running in parallel

    原文链接 https perlmaven com speed up calculation by running in parallel In this example we have a bunch of numbers We need
  • Inception V1 V2 V3 V4

    最开始卷积的层数不断增加 后来开始修改卷积核的形式 一 二Inception V1 同一层级进行多尺度卷积 扩展了宽度 同时加强对小目标的检测能力 A 引入1 1的卷积是为了降维 降低通道维度 B 在中间层加入辅助损失 辅助损失只用于训练
  • fastCGI的安装和使用

    一 安装 1 先安装2个包 spawn fcgi 1 6 4 tar gz fcgi 2 4 1 SNAP 0910052249 安装 fcgi 2 4 1 SNAP 0910052249 报错 fcgio cpp In destructo
  • Git合并不同url的项目

    本文由云 社区发表 作者 工程师小熊 摘要 为了让项目能实现Git Gerrit Jenkin的持续集成 我们把项目从Git上迁移到了Gerrit上 发现有的同事在老Git提交代码 因为Gerrit做了同步 在Gerrit上有新提交的时候就
  • json文件格式详解

    json文件格式详解 JSON JavaScript Object Notation 是一种轻量级的数据交换格式 易于人阅读和编写 同时也易于机器解析和生成 它基于JavaScript Programming Language Standa