1 什么是JSON JSON的语法规则-德赢Vwin官网 网
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

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

    关注

    8

    文章

    7002

    浏览量

    88938
  • JS
    JS
    +关注

    关注

    0

    文章

    78

    浏览量

    18096
  • JSON
    +关注

    关注

    0

    文章

    117

    浏览量

    6963

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

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

收藏 人收藏

    评论

    相关推荐

    实例篇 4G模组软件之json数据处理!

    今天我会把4G模组软件的json数据处理整理成文,以低功耗模组Air780E为例,一一展示出来:
    的头像 发表于 11-12 12:17 189次阅读

    远程IO控制器ZLAN6808-3 使用JSON定时下发执行DO通断

    的成本。远程IO控制器在很多场景中作为代替PLC运行,但是远程IO控制器有无法内部编程的缺点,而卓岚6808-3/-5-8等支持JSON定时下发串口指令控制从而实现DO继电器通断,大大增加了产品实用性
    的头像 发表于 10-28 09:38 214次阅读
    远程IO控制器ZLAN6808-3 使用<b class='flag-5'>JSON</b>定时下发执行DO通断

    JSON协议是什么,物联网中的RTU中如何使用JSON协议和服务器交互

    理想的数据交换语言。 JSON之所以受欢迎,主要是因为它仍然使用 JavaScript 语法来描述数据对象,并没有改变开发人员的使用习惯,
    的头像 发表于 09-25 16:14 694次阅读
    <b class='flag-5'>JSON</b>协议是什么,物联网中的RTU中如何使用<b class='flag-5'>JSON</b>协议和服务器交互

    TestStand表达式中常用的语法规则和运算符使用

    TestStand也有自己的语言嘛?在回答这个问题之前大家可以想一下在使用TestStand时有一个和语言密切相关的属性。没错那就是表达式(Expressions),在这篇文章中,小编将以Q&A的方式来带着大家来理解并熟悉TestStand表达式中较为常用的一些语法规则以及运算符使用。
    的头像 发表于 08-15 18:10 1349次阅读
    TestStand表达式中常用的<b class='flag-5'>语法规则</b>和运算符使用

    可以使用JSON将prov-config参数从网页发送到esp8266吗?

    请求。所以另一个意识形态。为什么不在Protocomm之外制作另一个简单的httpd/task来监听GET请求呢?而且它不起作用 我该怎么办,我该怎么办?请。 其他问题。我可以使用 JSON 将 prov-config 参数从网页发送到 esp8266 吗?
    发表于 07-09 07:41

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 module的切换

    从FA模型切换到Stage模型时,开发者需要将config.json文件module标签下的配置迁移到module.json5配置文件module标签下,具体差异见下列表格。
    的头像 发表于 06-27 14:16 445次阅读
    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 module的切换

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 配置文件差异

    FA模型应用在[config.json文件]中描述应用的基本信息,一个应用工程中可以创建多个Module,每个Module中都有一份config.json文件。config.json由app
    的头像 发表于 06-27 09:50 430次阅读
    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 配置文件差异

    http读取百度返回的json数据时丢失数据怎么处理?

    我在使用百度ai开放平台的语音识别功能,读取返回的数据时,使用esp_http_client_read(client, http_data, 1024);读到的数据里没有json的数据,还是http
    发表于 06-24 07:00

    espidf组件是否有json组包或者messagePack的库文件?

    espidf组件是否有json组包或者messagePack的库文件
    发表于 06-21 07:10

    PLC设备通过智能网关采用HTTP协议JSON文件对接MES、ERP等系统平台

    )配置JSON文件的字段与PLC寄存器地址等参数即可。 智能网关IGT-DSER支持POST/GET/PUT等多种方法,可同时作为HTTP协议的客户端和服务端。作为客户端通讯时将JSON文件提交
    发表于 05-13 12:04

    鸿蒙OpenHarmony开发板解析:【 部件配置规则

    部件的bundle.json放在部件源码的根目录下。以泛sensor子系统的sensor服务部件为例,
    的头像 发表于 05-09 15:15 884次阅读
    鸿蒙OpenHarmony开发板解析:【 部件配置<b class='flag-5'>规则</b>】

    鸿蒙OpenHarmony开发板:【子系统配置规则

    通过build仓下的subsystem_config.json可以查看所有子系统的配置规则
    的头像 发表于 05-08 22:07 275次阅读
    鸿蒙OpenHarmony开发板:【子系统配置<b class='flag-5'>规则</b>】

    PLC采用HTTP协议JSON文件对接MES等服务系统平台

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

    PLC从HTTP服务端获取JSON文件,解析数据到寄存器

    智能网关IGT-DSER集成了多种PLC协议,方便实现各种PLC与HTTP服务端之间通讯。通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,配置URL,即可采用POST命令,将JSON
    发表于 01-24 09:47

    鸿蒙开发:OH编译构建分析 - 依赖关系检查

    BUILD.gn文件。可以使用提供的模板,也可以使用gn语法规则自定义编写。 例子: ​ ohos_shared_library示例: import(\"//build/ohos.gni
    发表于 01-16 20:35