0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是JSON JSON的语法规则

jmiy_worldofai 来源:机器人及PLC自动化应用 作者:微笑应对 2021-08-25 15:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

JSON数据交换格式

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON是Douglas Crockford在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。

JSON 语法规则

JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名。

JSON是一个序列化的对象或数组。

1. 六个构造字符:

begin-array = ws %x5B ws ; [ 左方括号

begin-object = ws %x7B ws ; { 左大括号

end-array = ws %x5D ws ; ] 右方括号

end-object = ws %x7D ws ; } 右大括号

name-separator = ws %x3A ws ; : 冒号

value-separator = ws %x2C ws ; , 逗号

2. 在这六个构造字符的前或后允许存在无意义的空白符(ws):

ws = *(%x20 /; 空间

%x09 /; 水平标签

%x0A /; 换行或换行

%x0D); 回程

3.JSON的值:

3.1 JSON的构成: ws 值 ws [1]

3.2值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。

3.2.1对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的值由逗号分割的键值对组成,如:

1 {“name”: “John Doe”, “age”: 18, “address”: {“country” : “china”, “zip-code”: “10000”}}

3.2.2数组是由方括号括起来的一组值构成,如:

1[3, 1, 4, 1, 5, 9, 2, 6]

3.2.3 字符串与C或者Java的字符串非常相似。字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

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

一些合法的JSON的实例:

1{“a”: 1, “b”: [1, 2, 3]}

1[1, 2, “3”, {“a”: 4}]

13.14

1“plain_text”

JSON 与 JS 对象的关系

很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

1var obj = {a: ‘Hello’, b: ‘World’}; //这是一个对象,注意键名也是可以使用引号包裹的

1var json = ‘{“a”: “Hello”, “b”: “World”}’; //这是一个 JSON 字符串,本质是一个字符串

JSON 和 JS 对象互转

要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:

1var obj = JSON.parse(‘{“a”: “Hello”, “b”: “World”}’); //结果是 {a: ‘Hello’, b: ‘World’}

要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:

1var json = JSON.stringify({a: ‘Hello’, b: ‘World’}); //结果是 ‘{“a”: “Hello”, “b”: “World”}’

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7363

    浏览量

    95158
  • JS
    JS
    +关注

    关注

    0

    文章

    80

    浏览量

    19133
  • JSON
    +关注

    关注

    0

    文章

    129

    浏览量

    7834

原文标题:JSON数据交换格式

文章出处:【微信号:worldofai,微信公众号:worldofai】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    JSON:简洁代码高效搞定序列化与反序列化

    面对频繁的数据交互需求,用最简方式实现JSON序列化与反序列化已成为开发者必备技能,借助主流库,轻松实现零负担数据转换。JSON(JavaScriptObjectNotation)是一种轻量级
    的头像 发表于 02-25 19:04 312次阅读
    <b class='flag-5'>JSON</b>:简洁代码高效搞定序列化与反序列化

    极简代码,搞定JSON序列化与反序列化

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。LuatOS提供了json核心库—— 无需额外依赖,即可
    的头像 发表于 02-23 21:46 501次阅读
    极简代码,搞定<b class='flag-5'>JSON</b>序列化与反序列化

    cJSON库是什么?

    ; } return in;}总结通过阅读这个小小的json解析库,知道了大部分的json库是如何实现的,自己对json的认识也有了一个更深刻的印象。 学习到了一种解析某种格式的字符串的思路,要先知道该字符串格式的规范,直到它是
    发表于 01-29 07:13

    详解DBC的Signal与JSON文本结合

    为了优化CAN数据发送与接收的操作流程,更改以前手动输入状态对应数据的模式,采用下拉列表选择内容,但这需要用到超出DBC原有承载能力的信息。因此,将JSON与其结合,采用JSON格式文本写入Signal的Comment属性,将Comment属性的字符串通过
    的头像 发表于 01-06 10:57 501次阅读
    详解DBC的Signal与<b class='flag-5'>JSON</b>文本结合

    Node-RED+Modbus_slave:JSON数据采集与阿里云服务器上传

    1.引言 1.1文档说明 本文档介绍的是使用node-red将modbus_slave模拟的485数据进行JSON数据封装后,上传到阿里云ECS私人搭建的服务器,数据通过服务器出处理后,存入到
    的头像 发表于 01-05 17:37 1065次阅读
    Node-RED+Modbus_slave:<b class='flag-5'>JSON</b>数据采集与阿里云服务器上传

    如何获取易贝EBAY商品详情 API 返回值说明?

    的API获取商品详情时,通常会返回一个JSON或XML格式的响应,这个响应包含了商品的详细信息。以下是一个简化的JSON格式的eBay商品详情API返回值示例及说明:   json代码解读复制代码
    的头像 发表于 11-19 11:57 630次阅读

    解析淘宝拍立淘按图搜索API接口与JSON数据示例参考

    应用。 获取API权限和密钥(App Key、App Secret)。 使用Python调用API的示例代码。 3. JSON数据示例与解析 返回的JSON数据结构解析。 如何提取关键信息(如商品ID、名称、价格、图片等)。 4. 拍立淘API的应用场景 图像搜索与商品推
    的头像 发表于 11-11 13:19 556次阅读

    深度解析淘宝拍立淘按图搜索API接口与JSON数据示例参考

    API接口的使用方法,并通过JSON数据示例说明如何解析和利用这些数据。 在成长的路上,我们都是同行者。这篇关于API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 文章大纲 1. 淘宝拍立淘按图搜
    的头像 发表于 11-06 13:43 477次阅读

    Modbus协议转HTTP协议,实现JSON格式对接MES等系统平台

    )数据自动打包成JSON文件后发送到HTTP服务端,HTTP服务端返回数据后根据所配置的字段进行解析,写入到对应的寄存器。 智能网关的网口和串口参数设置如下图: 将以上参数按照上面3个步骤操作后,状态
    发表于 10-27 10:33

    迅为RK3568开发板基本工程目录-app.json5

    AppScope>app.json5 是应用的全局的配置文件,用于存放应用公共的配置信息。app.json5文件内容如下图所示: 第 3 行代码 bundleName 是包名 第 4
    发表于 07-14 10:56

    harmony-utils之JSONUtil,JSON工具类

    harmony-utils之JSONUtil,JSON工具类 harmony-utils 简介与说明 harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类
    的头像 发表于 07-03 18:21 586次阅读

    鸿蒙NEXT-鸿蒙老版本迁移最新版本(API19,modelVersion5.1.1)

    摘要:本文介绍鸿蒙(HarmonyOS)最新API19的迁移更新教程。首先需修改三个配置文件(hvigor-config.json5、build-profile.json
    的头像 发表于 06-30 22:15 1115次阅读
    鸿蒙NEXT-鸿蒙老版本迁移最新版本(API19,modelVersion5.1.1)

    PLC通过智能网关实现HTTP协议通讯,先取得token后再提交获取JSON格式的数据文件

    智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC、智能仪表通过HTTP协议与MES等各种系统平台通讯对接。PLC内不用编写程序,通过网关的参数配置软件(在附件中)配置JSON
    发表于 06-17 16:07

    PLC通过智能网关做HTTP协议通讯,先取得token后再提交获取JSON格式的数据文件

    智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC、智能仪表通过HTTP协议与MES等各种系统平台通讯对接。PLC内不用编写程序,通过网关的参数配置软件(下载地址)配置JSON
    的头像 发表于 06-17 11:28 986次阅读
    PLC通过智能网关做HTTP协议通讯,先取得token后再提交获取<b class='flag-5'>JSON</b>格式的数据文件

    迅为RK3568开发板编写bundle.json文件

    bundle.json 文件内容如下所示: 下面是对各个字段的解释: name: \"@ohos/demos\" - 这是组件或项目的名称,这里表示它属于 OHOS
    发表于 06-05 15:38