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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

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