JSON教程[通俗易懂]

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage, StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,…

大家好,又见面了,我是你们的朋友全栈君。

JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming LanguageStandardECMA-262 3rd Edition – December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

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

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

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

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

JSON教程[通俗易懂]

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

JSON教程[通俗易懂]

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

JSON教程[通俗易懂]

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

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

JSON教程[通俗易懂]

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

JSON教程[通俗易懂]

空白可以加入到任何符号之间。 

一、什么是 JSON

·        JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

·        JSON 是轻量级的文本数据交换格式

·        JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

·        JSON 具有自我描述性,更易理解

 

二、与 XML 相同之

·        JSON 是纯文本

·        JSON 具有”自我描述性”(人类可读)

·        JSON 具有层级结构(值中存在值)

·        JSON 可通过 JavaScript 进行解析

·        JSON 数据可使用 AJAX 进行传输


三、与 XML 不同之

·        没有结束标签

·        更短

·        读写的速度更快

·        能够使用内建的 JavaScript eval() 方法进行解析

·        使用数组

·        不使用保留字


四、为什么使用 JSON

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

使用 XML

·        读取 XML 文档

·        使用 XML DOM 来循环遍历文档

·        读取值并存储在变量中

使用 JSON

·        读取 JSON 字符串

·        用 eval() 处理 JSON 字符串

五、JSON 语法规则

JSON 法是 JavaScript 象表示法的子集。

·        数据在名称/值对中

·        数据由逗号分隔

·        大括号保存对象

·        中括号保存数组

六、JSON 名称/值对

JSON 数据的写格式是:名称/值对

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是

“firstName”: “John”

很容易理解,等价于 JavaScript 句:

firstName =”John”


七、JSON

JSON 可以是:

·        数字(整数或浮点数)

·        字符串(在双引号中)

·        逻辑值true 或 false

·        (在中括号中)

·        象(在大括号中)

·        null


八、JSON 数字

JSON 数字可以是整型或者浮点型:

{
age:30}


九、JSON

JSON 象在大括号({})中写:

象可以包含多个名称/值对

{ “firstName”:“John”,“lastName”:“Doe”}

一点也容易理解,与 JavaScript 句等价:

firstName =”John”

lastName =”Doe”

1.JSON 对象使用在大括号({})中书写。

象可以包含多个 key/value/

key 是字符串,value 可以是合法的 JSON 数据型(字符串, 数字, , , 尔值 null)。

key value 中使用冒号(:)分割。

每个 key/value 使用逗号(,)分割。

2.访问对象值

你可以使用点号(.)来访问对象的

实例

varmyObj, x;

myObj = {

                   name:google,

                   alexa:10000,

                   site:null};

x = myObj.name;

你也可以使用中括号([])来访问对象的

实例

varmyObj, x;

myObj = {

                   “name:google,

                   alexa:10000,

                   site:null};

x = myObj[name];

3.循环对象

你可以使用 for-in 来循环对象的属性:

实例

varmyObj = {

                   name:google,

                   alexa:10000,

                   site:null

};

for(xinmyObj){

                   document.getElementById(demo).innerHTML += x + <br>;

 }

在 for-in 环对象的属性,使用中括号([])来访问属性的

实例

varmyObj = {

                   “name:google,

                   “alexa:10000,

                   “site:null

};

for(xinmyObj){

                   document.getElementById(demo).innerHTML += myObj[x] + <br>;

}

4.嵌套 JSON 对象

JSON 象中可以包含另外一个 JSON 象:

实例

myObj = {

                   name:google,

                   “alexa:10000,

                   “sites: {

                                     “site1:www.google.com,

                                     “site2:m.google.com,

                                     “site3:c.google.com

                   }

}

你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 象。

实例

x = myObj.sites.site1; // 或者x = myObj.sites[site1];

5.修改值

你可以使用点号(.)来修改 JSON 象的

实例

myObj.sites.site1 = www.google.com;

你可以使用中括号([])来修改 JSON 象的

实例

myObj.sites[site1] = www.google.com;

6.删除对象属性

可以使用 delete 字来 JSON 象的属性:

实例

deletemyObj.sites.site1;

你可以使用中括号([]) JSON 象的属性

实例

deletemyObj.sites[site1]

 


十、JSON

JSON 在中括号中写:

可包含多个象:

{

              “employees”:[

                            {
“firstName”:”John”,“lastName”:“Doe”},

                            {
“firstName”:“Anna”,“lastName”:“Smith”},

                            {
“firstName”:“Peter”,“lastName”:“Jones”}

                   ]

}

在上面的例子中,“employees” 是包含三个象的数。每个象代表一条关于某人(有姓和名)的记录
JSON 在中括号中

JSON 中数组值是合法的 JSON 数据型(字符串, 数字, , , 尔值 null)。

JavaScript 中,数组值可以是以上的 JSON数据型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined

1.JSON 对象中的数组

象属性的可以是一个数

实例

{

        name:网站,

        num:3,

        sites:[Google, Runoob, Taobao]

}

可以使用索引访问

实例

x = myObj.sites[0];

2.循环数组

你可以使用 for-in 访问

实例

for(iinmyObj.sites){

        x += myObj.sites[i] + <br>;

}

你也可以使用 for

实例

for(i = 0; i < myObj.sites.length; i++){

        x += myObj.sites[i] + <br>;

}

3.嵌套 JSON 对象中的数组

JSON 象中数可以包含另外一个数,或者另外一个 JSON 象:

实例

myObj = {

        name:网站,

        num:3,

        sites: [

        {

                name:Google,

                info:[Android, Google 搜索, Google ]

        },  

        {

                name:Taobao,

                info:[淘宝, ]

        }]

}

可以使用for-in 来循环访问每个数

实例

for(iinmyObj.sites){

        x += <h1> + myObj.sites[i].name + </h1>;

        for(jinmyObj.sites[i].info){

                x += myObj.sites[i].info[j] + <br>;

        }

}

4.修改数组值

你可以使用索引来修改数组值

实例

myObj.sites[1] = Github;

5.删除数组元素

可以使用 delete 字来除数元素:

实例

deletemyObj.sites[1];

 


十一、JSON 尔值

JSON 尔值可以是 true 或者 false

{
flag:true}


十二、JSON null

JSON 可以 null

{
name:null}


十三、JSON 使用 JavaScript

JSON 使用 JavaScript 法,所以无需外的件就能 JavaScript 中的 JSON

JavaScript,您可以建一个象数,并像这样进赋值

实例

varsites = [

              {
name:google , url:www.google.com},

              {
name:微博 , url:www.weibo.com}

];

可以像这样访问JavaScript 象数中的第一(索引从 0 开始):

sites[0].name;

返回的内容是:

runoob

可以像这样修改数据

sites[0].name=教程;

十四、JSON 文件

·        JSON 文件的文件型是 “.json”

·        JSON 文本的 MIME 型是 “application/json”

 

 

http://www.runoob.com/json/json-parse.html

http://www.runoob.com/json/json-stringify.html

http://www.runoob.com/json/json-eval.html

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125696.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月6日 上午10:00
下一篇 2022年4月6日 上午10:20


相关推荐

  • MQTT服务器搭建非常详细流程(每一步都有,CMD窗口都有)

    MQTT服务器搭建非常详细流程(每一步都有,CMD窗口都有)搭建过程想搭建一个MQTT服务器,刚好找到ApacheActiveMQArtemis支持,而且是基于Java开发的,那跨平台就很方便。以下是在Windows7(64位)系统下搭建:下载首先下载ApacheActiveMQArtemis,官方地址:https://activemq.apache.org/components/artemis/download/下载bin包就可以安装随便解压Z:\apache-artemis-2.9.0创建使用cmd命令行进入cd->Z:\apa

    2022年5月15日
    44
  • vue的双向绑定原理及实现_vue绑定数据

    vue的双向绑定原理及实现_vue绑定数据一、什么是双向绑定我们先从单向绑定切入单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新双向绑定就很容易联想到了,在单向绑定的基础上,用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定举个栗子当用户填写表单时,View的状态就被更新了,如果此时可以自动更新Model的状态,那就相当于我们把Model和View做了双向绑定关系图如下二、双向绑定的原理是什么我们都知道Vue是数

    2025年11月14日
    7
  • 宫廷计动漫_动漫乱斗

    宫廷计动漫_动漫乱斗在移动互联网和资本的助力下,我国动漫市场近几年开始步入快速发展期。相关数据显示,我国动漫行业2017年的产值已达1536亿元人民币,占整个文娱产业总产值的24%,且预计我国动漫行业总产值在2020年将到达2212亿元。在看到动漫市场具备如此“钱景”之后,不少资本企业纷纷开始布局动漫领域,市场上出现了动漫之家、有妖气漫画、看漫画、腾讯动漫、快看漫画等平台,还有不久前B站推出的哔哩哔哩漫画APP等…

    2022年8月23日
    6
  • 给 Claude Code 造个趁手的 MCP Tool Server,聊聊我踩的那些坑

    给 Claude Code 造个趁手的 MCP Tool Server,聊聊我踩的那些坑

    2026年3月14日
    1
  • sqlserver如何复制数据库_sql数据库复制到另一台电脑

    sqlserver如何复制数据库_sql数据库复制到另一台电脑快照复制:通过设定固定的时间周期 进行复制,时间周期范围可以任意设置在一分钟到一个月之间,是三种复制功能中最稳定的。事物复制:通过实时监测数据库更新,在每次 更新时对数据和数据库对象进行复制,实时性能 最好,但SQLServer个人版本无法提供事物复制功能,企业版本虽然有该功能,但不能对数据内容进行筛选,实用性和稳定性都比快照复制低。合并复制:指两个数据库之间

    2022年8月31日
    3
  • A*算法之八数码问题 python解法

    A*算法之八数码问题python解法文章目录A*算法之八数码问题python解法问题描述A*算法与八数码问题状态空间的定义各种操作的定义启发式函数的定义人工智能课程中学习了A*算法,在耗费几小时完成了八数码问题和野人传教士问题之后,决定写此文章来记录一下,避免忘记问题描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为12380

    2022年4月6日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号