<!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的更多相关文章

  1. javaScript系列:JSON详解

    JSON详解   JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交 ...

  2. javascript编程: JSON, Mapping, 回调

    使用 Javascript  编程, 组合使用 JSON 数据格式,Mapping 和回调技术, 可以产生很强的表达效果. 在实际工作中, 总会有数据汇总的需求. 比如说, 取得了多个 device ...

  3. JavaScript 笔记(3) -- JSON

    JavaScript JSON (JavaScript Object Notation): 是一种轻量级的数据交换格式 JSON 是用于存储和传输数据的格式 JSON 通常用于服务端向网页传递数据 J ...

  4. Javascript:JSON总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于ECMAScript的一个子集,采用完全独立于语言的文本格式.这些特性使JSON成为理想的数据交换 ...

  5. 在JavaScript中使用json.js:访问JSON编码的某个值

    演示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  6. Javascript学习之:JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于ECMAScript的一个子集,采用完全独立于语言的文本格式.这些特性使JSON成为理想的数据交换 ...

  7. ZH奶酪:JavaScript中的JSON.stringify() and JSON.parse()

    JSON.stringify() JSON.stringify()可以将任意的JavaScript值序列化成JSON字符串. 语法 JSON.stringify(value[, replacer [, ...

  8. javascript:json对象和json字符串的相互转换

    json对象和字符串的相互转换 //使用json中的parser方法转换: var str='{"name":"fendouer", "age&quo ...

  9. JavaScript:JSON 和 JS 对象

    区别 JSON(JavaScript Object Notation)仅仅是一种数据格式(或者叫数据形式).数据格式其实就是一种规范,按照这种规范来存诸和交换数据.就好像 XML 格式一样. 区别 J ...

随机推荐

  1. 使用dsoframer演示ppt

    优点: (1)不用直接打开PowerPoint (2)可以嵌入到Form中,那种先打开ppt然后将ppt嵌入到Form中的方式,会先打开PowerPoint 缺点: 很早就停止更新了....  但是没 ...

  2. Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader

    Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader ...

  3. pycharm中报错:ImportError: No module named 'skimage'

    pycharm中直接setting是没办法成功的,会提示is requied C++ bool.....先进入那个页面安装好需要的tools,这个安装比较慢:http://landinghub.vis ...

  4. web+大文件上传

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  5. 第03组 Alpha冲刺(3/4)

    队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...

  6. 常用C库函数小结

    1. sprintf 原型:int sprintf( char *buffer, const char *format, [ argument] - ); 功能:将格式化后的字符串写在buffer中, ...

  7. bk复面-一场被问蒙蔽了的面试

    1.自我介绍         ---自我介绍从个人生活上.兴趣爱好上去介绍,比如我自己,平时喜欢听听音乐.看看鸡汤类的书,比如爱下厨,喜欢根据一些网上的教程去尝试做一份自己满意的晚餐,简历上已经写得工 ...

  8. [笔记]nginx配置反向代理和负载均衡

    1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...

  9. $\LaTeX$数学公式大全1

    $1\ Geek\ and\ Hebrew\ letters$$\alpha$ \alpha$\beta$ \beta$\chi$ \chi$\delta$ \delta$\epsilon$ \eps ...

  10. $\LaTeX$数学公式大全9

    $9\ Math\ mode\ accents$ $\acute{a}$ \acute{a} $\breve{a}$ \breve{a} $\ddot{a}$ \ddot{a} $\grave{a}$ ...