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

    文章

    6511

    浏览量

    87600
  • JS
    JS
    +关注

    关注

    0

    文章

    73

    浏览量

    17848
  • JSON
    +关注

    关注

    0

    文章

    111

    浏览量

    6817

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

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

收藏 人收藏

    评论

    相关推荐

    关于JSON数据库

    如何理解JSON数据库?作为NoSQL数据库的一种类型,JSON数据库有哪些优势呢?JSON数据库如何运作,它为应用程序开发者带来了哪些价值呢?
    的头像 发表于 12-06 13:46 425次阅读
    关于<b class='flag-5'>JSON</b>数据库

    什么是JSON数据库

    如何理解JSON数据库?作为NoSQL数据库的一种类型,JSON数据库有哪些优势呢?JSON数据库如何运作,它为应用程序开发者带来了哪些价值呢?文章速览:什么是JSON什么是
    的头像 发表于 12-02 08:04 372次阅读
    什么是<b class='flag-5'>JSON</b>数据库

    java switch case的语法规则

    在Java中,switch case语句是一种用于多分支选择的控制流语句。它允许根据某个表达式的值来执行不同的代码块。下面是关于switch case语法规则的详细解释。 基本语法 switch语句
    的头像 发表于 11-30 14:40 349次阅读

    Configuration Wizard的语法规则

    Configuration Wizard的语法规则 大家如果有使用过HTML语法,这里就非常容易理解了,它和 HTML一样,使用成对的标签来代表不同的功能,如 >和>,其中 * 代表不同的功能标签
    的头像 发表于 11-23 18:09 607次阅读
    Configuration Wizard的<b class='flag-5'>语法规则</b>

    如何利用Python和pandas来处理json数据

    在实际工作中,尤其是web数据的传输,我们经常会遇到json数据。它不像常见的文本数据、数值数据那样友好,而且它和Python中的字典类型数据又很相像,给很多人造成了困扰。 本文结合具体案例详细介绍
    的头像 发表于 11-01 10:59 630次阅读
    如何利用Python和pandas来处理<b class='flag-5'>json</b>数据

    JSON的使用方法

    JSON是一个标记符序列。这套标记符包括: 构造字符、字符串、数字和三个字面值 。 构造字符 JSON包括六个构造字符,分别是:左方括号、右方括号、左大括号、右大括号、冒号与逗号。 JSON
    的头像 发表于 10-31 16:42 447次阅读
    <b class='flag-5'>JSON</b>的使用方法

    请问STM32可以用JSON库吗?

    STM32能不能支持JSON库的操作
    发表于 10-23 07:45

    C结构体与JSON快速互转库介绍

    自一种cJSON与结构体互转的方法 之后,又发现一个开源项目struct2json,大家可以参考看看。
    发表于 10-17 10:09 382次阅读
    C结构体与<b class='flag-5'>JSON</b>快速互转库介绍

    如何用C语言进行json的序列化和反序列化

    json是目前最为流行的文本数据传输格式,特别是在网络通信上广泛应用,随着物联网的兴起,在嵌入式设备上,也需要开始使用json进行数据传输,那么,如何快速简洁地用C语言进行json的序列化和反序
    的头像 发表于 10-07 11:05 839次阅读

    基于Json格式的文本视图验证工具

    基于Json格式的文本视图验证工具
    发表于 09-19 09:15 8次下载

    更低内存占用的通用Json库-RyanJson

    RyanJson是一个小巧的c语言json解析器,包含json文本文件解析 / 生成,专门针对内存占用进行优化,相比cJSON内存占用减少30% - 60%,运行速度和cJSON差不多。
    的头像 发表于 08-24 17:23 800次阅读
    更低内存占用的通用<b class='flag-5'>Json</b>库-RyanJson

    labview 怎么防止JSON断线

    labview 在使用JSON时候会出现断线的情况,接收数据是有设备发出的,有几百台设备,接收数据时间隔几天软件就会报错关闭,希望大神可以提醒一下,怎么防止JSON报错断线
    发表于 08-04 08:52

    JSON将替代XML?绝对不可能!

    虽然 JSON 格式很香,在当今应用也很普及,但是说能替代 XML 格式,我觉得有点不太现实。
    的头像 发表于 07-07 10:28 383次阅读
    <b class='flag-5'>JSON</b>将替代XML?绝对不可能!

    支持的JSON数据选项介绍

    GPU 加速的 RAPID JSON 数据处理
    的头像 发表于 07-05 16:30 260次阅读

    为什么无法解析HTML/Json

    无法解析HTML/Json
    发表于 06-05 06:03