JSON的总结心得

简介

  1. JSON: JavaScript Object Notation(JavaScript 对象表示法)
  2. JSON 是存储和交换文本信息的语法。
    JOSN 与XML区别
    相同之处
    JSON 是纯文本
    JSON 具有"自我描述性"(人类可读)
    JSON 具有层级结构(值中存在值)
    JSON 可通过 JavaScript 进行解析
    JSON 数据可使用 AJAX 进行传输
    不同之处
    没有结束标签
    更短
    读写的速度更快
    能够使用内建的 JavaScript eval() 方法进行解析
    使用数组
    不使用保留字
    在这里插入图片描述

语法

写法

"名称" : "值"

  1. 数据在名称/值对中
  2. 数据由逗号分隔
  3. 大括号保存对象
  4. 中括号保存数组

JSON值

  1. 数字
  2. 字符串
  3. 布尔
  4. 数组
  5. 对象
  6. null

对象

  1. 对象在大括号{}中书写,对象可以包含多个键/值对
  2. 名称必需是字符串,值可以是合法的JSON数据类型
  3. 键与值中使用冒号:分割,每个键值对用逗号,分割

访问对象值

Var myobj,x;
myObj={"name":"runoob"};
1.	x=myobj.name;
2.	x=myobj["name"];

循环对象

var myobj={"name":"runoob","alexa":10000};
for (x in myobj) {
document.getElemetById("demo").innerHTML += x + "<br>"; //循环对象的属性
document.getElementById("demo").innerHTML += myObj[x] + "<br>"; //循环对象的值
}

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

myObj = { "name":"runoob", "alexa":10000, 
"sites": { "site1":"www.runoob.com"
} }

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

x = myObj.sites.site1;
x = myObj.sites["site1"];

使用点号(.)或者中括号([])来修改 JSON 对象的值

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

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

delete myObj.sites.site1;
delete myObj.sites["site1"]

数组

  1. JSON 数组在中括号中书写
  2. JSON 中数组值必须是合法的 JSON 数据类型

语法

[ "Google", "Runoob", "Taobao" ]

对象中的数组

对象属性的值可以是一个数组
{ "name":"网站", "num":3, "sites":[ "Google", "Runoob", "Taobao" ] }

使用索引值来访问数组

x = myObj.sites[0];

循环数组

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

JSON对象中数组包含另外一个数组或者另外一个JSON对象
可以使用 for-in 来循环访问每个数组
在这里插入图片描述

修改数组值

myObj.sites[1] = "Github";

使用 delete 关键字来删除数组元素

delete myObj.sites[1];

JSON.parse()

  1. JSON 通常用于与服务端交换数据。
  2. 在接收服务器数据时一般是字符串。
  3. 我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。

语法

JSON.parse(text[, reviver])
text:必需, 一个有效的 JSON 字符串。
reviver:可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
在这里插入图片描述

从服务端接收JSON数据

在这里插入图片描述document.getElementById("demo").innerHTML = myObj.name;

从服务器接收数组的JSON数据

在这里插入图片描述

document.getElementById("demo").innerHTML = myArr[1];

解析数据

JSON 不能存储 Date 对象。
如果你需要存储 Date 对象,需要将其转换为字符串。
之后再将字符串转换为 Date 对象。
在这里插入图片描述

解析函数

JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

在这里插入图片描述不建议在JSON中使用函数。

JSON.stringify()

  1. JSON 通常用于与服务端交换数据。
  2. 在向服务器发送数据时一般是字符串。
  3. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

语法

JSON.stringify(value[, replacer[, space]])

  1. value必需,要转换的js值
  2. replacer可选,用于转换结果的函数或数组
  3. soace可选,文本添加缩进、空格和换行符

JS对象转换

在这里插入图片描述

JS数组转换

在这里插入图片描述

解析函数

JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value。
我们可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生
在这里插入图片描述

eval()

  1. 由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
  2. eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误。
    在这里插入图片描述

语法

var txt = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
var obj = eval ("(" + txt + ")");
  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一头秃发丶

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值