JavaScript(3):JSON
<!DOCTYPE html>
<html>
<body>
<p>JSON</p>
<script>
// JSON 值可以是:数字,字符串,逻辑值,数组,对象,null
var personalInfoList = [
{"id":1, "name":"Harry", "age":22, "gender":null, "married":false, "advantage":["C", "C#", "C++"]},
{"id":2, "name":"Frank", "age":26, "gender":null, "married":true, "advantage":["Java", "JavaScript", "Python"]}
];
// 可以如下访问JSON
console.log(personalInfoList[1].name);
console.log(personalInfoList[1]["age"]);
// 循环访问元素
for(i in personalInfoList) {
for(j in personalInfoList[i].advantage) {
console.log(personalInfoList[i].advantage[j]);
}
} // JSON通常用于与服务端交换数据/在接收服务器数据时一般是字符串
// 可以使用JSON.parse()方法将数据转换为JavaScript对象
var personalInfoListStr = '[ {"id":1, "name":"Harry", "age":22, "gender":null, "married":false, "advantage":["C", "C#", "C++"]},\
{"id":2, "name":"Frank", "age":26, "gender":null, "married":true, "advantage":["Java", "JavaScript", "Python"]} ]';
// 转换成一个有效的JSON字符串
var personalInfoList1 = JSON.parse(personalInfoListStr);
console.log(personalInfoList1[1].name);
console.log(personalInfoList1[1].age);
// 可以加一个转换结果的函数, 将为对象的每个成员调用此函数
var personalInfoList2 = JSON.parse(personalInfoListStr, function(key, value) {
if(key == "age") {
return value + 1;
} else {
return value;
}
});
console.log(personalInfoList2[0].age);
console.log(personalInfoList2[1].age); // JSON 通常用于与服务端交换数据/在向服务器发送数据时一般是字符串
// 可以使用 JSON.stringify()方法将JavaScript对象转换为字符串
// [注意!]不得包含Data对象和函数对象
var personalInfoList3 = JSON.stringify(personalInfoList);
console.log(personalInfoList3);
// 带有转换结果和文本缩进
var personalInfoList4 = JSON.stringify(personalInfoList, function(key, value) {
if(key == "age") {
return value - 1;
} else {
return value;
}
}, 2);
console.log(personalInfoList4); // eval()函数也可以解析 JSON 文本,然后生成JavaScript对象
var personalInfoList5 = eval(personalInfoListStr);
console.log(personalInfoList5[1].name);
console.log(personalInfoList5[1].age);
// eval()函数同时可以编译执行任何JavaScript代码, 会有潜在安全问题,所以,还是最好使用JSON.parse
var demo = 'console.log("lalala~");';
eval(demo);
</script>
</body>
</html>
JavaScript(3):JSON的更多相关文章
- javaScript系列:JSON详解
JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交 ...
- javascript编程: JSON, Mapping, 回调
使用 Javascript 编程, 组合使用 JSON 数据格式,Mapping 和回调技术, 可以产生很强的表达效果. 在实际工作中, 总会有数据汇总的需求. 比如说, 取得了多个 device ...
- JavaScript 笔记(3) -- JSON
JavaScript JSON (JavaScript Object Notation): 是一种轻量级的数据交换格式 JSON 是用于存储和传输数据的格式 JSON 通常用于服务端向网页传递数据 J ...
- Javascript:JSON总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于ECMAScript的一个子集,采用完全独立于语言的文本格式.这些特性使JSON成为理想的数据交换 ...
- 在JavaScript中使用json.js:访问JSON编码的某个值
演示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...
- Javascript学习之:JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于ECMAScript的一个子集,采用完全独立于语言的文本格式.这些特性使JSON成为理想的数据交换 ...
- ZH奶酪:JavaScript中的JSON.stringify() and JSON.parse()
JSON.stringify() JSON.stringify()可以将任意的JavaScript值序列化成JSON字符串. 语法 JSON.stringify(value[, replacer [, ...
- javascript:json对象和json字符串的相互转换
json对象和字符串的相互转换 //使用json中的parser方法转换: var str='{"name":"fendouer", "age&quo ...
- JavaScript:JSON 和 JS 对象
区别 JSON(JavaScript Object Notation)仅仅是一种数据格式(或者叫数据形式).数据格式其实就是一种规范,按照这种规范来存诸和交换数据.就好像 XML 格式一样. 区别 J ...
随机推荐
- IE8"HTML Parsing Error:Unable to modify the parent container element before the child element is closed"错误
一.IE8报下面错误,解决办法:网页错误详细信息消息: HTML Parsing Error: Unable to modify the parent container element before ...
- 中国剩余定理(crt)和扩展中国剩余定理(excrt)
数论守门员二号 =.= 中国剩余定理: 1.一次同余方程组: 一次同余方程组是指形如x≡ai(mod mi) (i=1,2,…,k)的同余方程构成的组 中国剩余定理的主要用途是解一次同余方程组,其中m ...
- 使用powershell的remove
使用Remove-Module -Name Functions2 只是移除当前会话的模块 并且Import-Module -Name Functions2与 Remove-Module -Name F ...
- Acwing-202-最幸运的数字(同余, 欧拉定理)
链接: https://www.acwing.com/problem/content/204/ 题意: 8是中国的幸运数字,如果一个数字的每一位都由8构成则该数字被称作是幸运数字. 现在给定一个正整数 ...
- java——适配器模式、策略模式
适配器模式: https://www.cnblogs.com/honger/p/5970283.html 策略模式: https://www.jianshu.com/p/3bcf55cf83d3
- IDEA运行有问题debug正常解决方案
朋友们!有没有遇到这样的问题,IDEA运行有问题,debug确是正常的,不经怀疑人生! 不要慌!点击maven,clean一下,再compile一下,就好啦! 不要慌!点击maven,clean一下, ...
- java输出乱码专题
https://blog.csdn.net/liaoYu1887/article/details/82714727(其他) @Controller public class ItemCatContro ...
- 【CUDA 基础】3.6 动态并行
title: [CUDA 基础]3.6 动态并行 categories: - CUDA - Freshman tags: - 动态并行 - 嵌套执行 - 隐式同步 toc: true date: 20 ...
- np.max() 和 np.maximum()的区别
1.np.max(a, axis=None, out=None, keepdims=False) 求序列的最值 最少接受一个参数 axis默认为axis=0即列向,如果axis=1即横向 ex: &g ...
- BeautifulSoup4 提取数据爬虫用法详解
Beautiful Soup 是一个HTML/XML 的解析器,主要用于解析和提取 HTML/XML 数据. 它基于 HTML DOM 的,会载入整个文档,解析整个 DOM树,因此时间和内存开销都会大 ...