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 ...
随机推荐
- Android异常与性能优化相关面试问题-内存泄漏面试问题讲解
Java内存泄漏基础知识: Java的内存的分配策略 a.静态存储区:也叫方法区,主要是存放一些静态数据及全局变量等,在程序编译时就已经分配好了,并且在静态存储区中存放的变量在整个程序运行期间都存在. ...
- php正则表达式验证手机/固定电话/邮箱/身份证/银行卡自定义函数
/** * 验证手机号码格式 * @param string $phone 手机号 * @return boolean */ function is_phone($phone) { $chars = ...
- Cmd有关IP的部分命令
ping命令判断系统数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到0了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个 ...
- python中open与with open的区别
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的.在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开 ...
- SQL Prompt 5 功能按键说明
1. Refresh suggestions 未知,按了没反映 2.Format sql 标准化SQL代码书 ...
- 线程安全 Vs 非线程安全
线程安全:多线程访问时,采用了加锁机制,当一个线程读取数据时,其他线程不能访问直到该线程读取完毕.不会出现数据不一致或者脏数据. 非线程安全:不提供数据保护,可能出现其他线程访问时更改数据而该线程得到 ...
- Jmeter接口测试之用例数据分离
之前我们的用例数据都是配置在 Jmeter Http 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢? ...
- jquery animate()方法 语法
jquery animate()方法 语法 作用:animate() 方法执行 CSS 属性集的自定义动画.该方法通过CSS样式将元素从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创 ...
- JavaScriptPlus操作类
/// <summary> /// JavaScript 操作类 /// </summary> public class JavaScriptPlus { public Jav ...
- android adb 命令发送 keyevent
使用Adb shell command直接送key event給Android adb shell input keyevent 7 # for key '0' adb shell input key ...