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

    文章

    7315

    浏览量

    93986
  • JS
    JS
    +关注

    关注

    0

    文章

    79

    浏览量

    18810
  • JSON
    +关注

    关注

    0

    文章

    125

    浏览量

    7704

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    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 359次阅读

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

    摘要:本文介绍鸿蒙(HarmonyOS)最新API19的迁移更新教程。首先需修改三个配置文件(hvigor-config.json5、build-profile.json
    的头像 发表于 06-30 22:15 802次阅读
    鸿蒙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 604次阅读
    PLC通过智能网关做HTTP协议通讯,先取得token后再提交获取<b class='flag-5'>JSON</b>格式的数据文件

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

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

    不用联网不用编程,PLC通过智能网关快速实现HTTP协议JSON格式与MES等系统平台双向数据通讯

    智能网关IGT-DSER支持POST/GET/PUT等多种方法,可同时作为HTTP协议的客户端和服务端。作为客户端通讯时将JSON文件提交给HTTP的服务端, 如果服务端有返回的JSON,网关
    的头像 发表于 05-13 14:40 872次阅读
    不用联网不用编程,PLC通过智能网关快速实现HTTP协议<b class='flag-5'>JSON</b>格式与MES等系统平台双向数据通讯

    配置Skywalking告警

    和Metrics .NET6 对接 Skywalking 添加依赖 编辑Skywalking配置文件skyapm.json 在launchSettings.json文件配置SK 在startup.cs文件中添加
    的头像 发表于 01-16 10:58 931次阅读
    配置Skywalking告警

    迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-新增 topeet子系统-编写 bundle.json文件

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

    think-cell——使用JSON数据实现自动化(二)

    26.4 远程提供模板 还可以通过远程服务器提供带有 think-cell 图表的模板文件。在这种情况下,键的值是 URL 而不是本地路径,如上面的远程 JSON 示例所示。URL 可以指定为协议
    的头像 发表于 01-03 10:12 642次阅读
    think-cell——使用<b class='flag-5'>JSON</b>数据实现自动化(二)

    think-cell——使用JSON数据实现自动化(一)

    您可以使用 JSON 中的数据来复制最初作为模板创建的图表,并为其提供新的数据表。您可以控制使用特定模板构建新演示文稿的顺序。模板也可以多次使用。 PowerPoint 模板和 JSON 数据都可以
    的头像 发表于 01-02 13:37 729次阅读
    think-cell——使用<b class='flag-5'>JSON</b>数据实现自动化(一)

    API接口有哪些常见的安全问题

    定义:API是一种软件接口,它规定了软件组件之间的通信方式,使得不同的应用程序能够按照预定义的规则相互通信和交换数据。 既然是接口,那就涉及到数据格式。API接口支持多种数据格式,其中JSON
    的头像 发表于 12-15 09:54 1082次阅读
    API接口有哪些常见的安全问题