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 ...
随机推荐
- MySQL 关于自定义函数的操作
-- 函数 --> 模块化,封装,代码复用 create function 函数名([参数列表]) returns 数据类型 begin SQL语句: return 值: end; 示例: -- ...
- tcpip入门的网络教程汇总
网络编程懒人入门(一):快速理解网络通信协议(上篇) http://www.52im.net/thread-1095-1-1.html TCP/IP详解学习笔记 https://www.cnblogs ...
- vue.js中 this.$nextTick()的使用
官方文档是这样介绍的: this.$nextTick 将回调延迟到下次DOM更新循环之后执行.在修改数据之后立即使用它,然后等待DOM更新. this.$nextTick 跟全局方法 vue.next ...
- app 移动支付
1.微信 多个端单独对用appid 多个appid 对应到一个商户 先创建appid 然后再关联商户 2.支付宝 多个aliPrivateKey,这个可以生成pkcs8,是用在java里面.非 ...
- 把 textbox 遍历赋值为空
foreach (Control aa in this.Form.Controls){ if (aa.GetType().ToString() == "System.Web.UI.We ...
- 三元环HDU 6184
HDU - 6184 C - Counting Stars 题目大意:有n个点,m条边,问有一共有多少个‘structure’也就是满足V=(A,B,C,D) and E=(AB,BC,CD,DA,A ...
- Minimal Labels
Minimal Labels 这个题需要用到拓扑排序的思维,但是这个题还有一个条件--字典序最小,因此可以用一个递增的优先队列来维护,每找到一个入度为 0 的点就把它 push 进去因而每一次判断的点 ...
- [CSP-S模拟测试]:二叉搜索树(DP+贪心)
题目传送门(内部题99) 输入格式 第一行一个整数$n$,第二行$n$个整数$x_1\sim x_n$. 输出格式 一行一个整数表示答案. 样例 样例输入: 58 2 1 4 3 样例输出: 数据范围 ...
- 批量插入数据@Insert
// 批量插入数据 @Insert("<script>" + "insert into index_kline (currency_id, currency, ...
- Vue使用Axios实现http请求以及解决跨域问题
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中.Axios的中文文档以及github地址如下: 中文:https://www.kancloud.cn/y ...