5分钟认识JSON

JSON: JavaScript Object Notation(JavaScript 对象表示法)

什么是Json?

Json是java script 对象表示式

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

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

json具有自我描述性,更易于理解

JSON转化为JavaScript对象

json文本格式在语法上与创建JavaScript对象的代码相同

由于这种相似性,无需解析器,JavaScript程序能够使用内建的eval()函数,用json数据来生成原生的JavaScript对象

语法规则

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

数据在名称/值对中

数据由逗号分隔

大括号保存对象

中括号保存数组

json名称/值对

书写格式: 名称: 值

名称在双引号中,后面一个冒号,然后是值:

"name": "张三"

JSON值

JSON值可以是:数字、字符串、逻辑值、数组、对象、null

数字: {"age": 23}

字符串: {"name": "kermit"}

对象: {"name":"kermit", "age": 23}

数组:数组在中括号中书写,数组可包含多个对象

{

sites: [

{"name": "aaa", "age": 22},

{"name": "bbb", "age": 23},

{"name": "ccc",  "age":24}

]

}

JSON使用JavaScript语法:

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

var sites =  

[

{"name": "aaa", "age": 22},

{"name": "bbb", "age": 23},

{"name": "ccc",  "age":24}

];

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

sites[0].name

返回的内容是: aaa

可以这样来修改数据: sites[0].name = "cccccc";

 

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

JSON 对象

对象语法:

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

对象可以包含多个 key/value(键/值)对。

key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。

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

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

实例: { "name":"aaa", "alexa":10000, "site":null }

访问JSON对象:

1.x = myObj.name;

2.x = myObj["name"];

循环JSON对象:

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

var myObj = { "name":"zzz", "alexa":10000, "site":null };

for (x in myObj) { document.getElementById("demo").innerHTML += x + "<br>"; }

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

var myObj = { "name":"runoob", "alexa":10000, "site":null };

for (x in myObj) { document.getElementById("demo").innerHTML += myObj[x] + "<br>"; }

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

myObj = {

"name":"runoob",

"alexa":10000,

"sites": {

"site1":"www.runoob.com",

"site2":"m.raddb.com",

"site3":"c.robddd.com"

} }

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

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

 

JSON修改值

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

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

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

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

 

JSON删除对象属性

使用 delete 关键字来删除 JSON 对象的属性:

delete myObj.sites.site1;

使用中括号([])来删除 JSON 对象的属性:

delete myObj.sites["site1"];

JSON数组

数组作为JSON对象

实例:["aa", "bb", "cc"]

json数组在中括号中书写

json中数组值必须是合法的json数据类型

JSON对象中的数组,

对象属性的值可以是一个数组:

{
    "name": "Kermit",
    "num": 3,
    "sites": ["google", "taobao", "jindong"]
}

循环数组:

你可以使用 for-in 来访问数组:

myObj = {
    "name":"网站",
    "num":3,
    "sites":[ "Google", "Taobao" ]
};

for (i in myObj.sites) {
    x += myObj.sites[i] + "<br>";
}

 

嵌套json对象中的数组

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

使用 for-in 来循环访问每个数组:

for (i in myObj.sites) {

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

for (j in myObj.sites[i].info) {

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

} }

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

myObj.sites[1] = "Github";

我们可以使用 delete 关键字来删除数组元素:

delete myObj.sites[1];

JSON.parse()

JSON 通常用于与服务端交换数据。

在接收服务器数据时一般是字符串。

我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。

JSON.parse(text[, reviver])

参数说明:

  • text:必需, 一个有效的 JSON 字符串。
  • reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

JSON解析实例:

我们从服务器接收以下数据:

{ "name":"tencent", "alexa":10000, "site": "www.tencent.com" }

我们用JSON.parse()方法处理以上数据,将其转化为JavaScript对象

var obj = JSON.parse(' { "name":"tencent", "alexa":10000, "site": "www.tencent.com" } ');

kunkunkun!!!!!!!!

猜你喜欢

转载自blog.csdn.net/Kermit_father/article/details/82765302