Javascript中的Array(数组) 、{}(映射) 与JSON解析

简介: 做网页总会使用javascript,使用javascript总会使用JSON。最近用到一下,就写写。 下面是总结: 1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js。

做网页总会使用javascript,使用javascript总会使用JSON。最近用到一下,就写写。

下面是总结:

1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js

2.将json字符串转为javascript对象,可以使用javascript自带的eval函数。

3.javascript中可以使用typeof查看变量的类型。

4.要访问json字段,必须是对对象的访问。

jquery实例代码:

 1     <script type="text/javascript">
 2         $(function(){
 3             var myArray=new Array();    ///数组
 4             myArray[0]="fgh";
 5             myArray[1]="rt";
 6             myArray[2]="xc";
 7             var arrString=JSON.stringify(myArray);    //将myArray对象转化为字符串
 8             alert(arrString);    //["fgh","rt","xc"]
 9             var obj1=eval("("+arrString+")");    ///eval将字符串转为json对象,注意在两边加上"("和")"
10             alert("数组第1个元素"+obj1[0]);
11 
12             var myMap = {};    //对象
13             myMap['name'] = "lxd";
14             myMap['age'] = 20;
15             myMap['content'] = myArray;    
16             var mapString=JSON.stringify(myMap);    ///将myMap对象转化为字符串
17             alert(mapString);    ///{"name":"lxd","age":20,"content":["fgh","rt","xc"]}
18             var obj2=eval("("+mapString+")");
19             alert("map中的name字段:"+obj2.name);
20         });
21     </script>

 为什么eval("("+mapString+")")

  eval本身的问题。 由于json可能是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

  加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。

参考:

http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html

http://www.cnblogs.com/lidabo/archive/2011/12/29/2305770.html

http://www.sojson.com/

相关文章
|
16天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
30天前
|
JSON JavaScript 前端开发
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
264 0
|
2天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
2天前
|
前端开发 JavaScript 编译器
深入解析JavaScript中的异步编程:Promises与async/await的使用与原理
【4月更文挑战第22天】本文深入解析JavaScript异步编程,重点讨论Promises和async/await。Promises用于管理异步操作,有pending、fulfilled和rejected三种状态。通过.then()和.catch()处理结果,但可能导致回调地狱。async/await是ES2017的语法糖,使异步编程更直观,类似同步代码,通过事件循环和微任务队列实现。两者各有优势,适用于不同场景,能有效提升代码可读性和维护性。
|
7天前
|
存储 索引 Python
深入解析NumPy数组的形状与重塑
【4月更文挑战第17天】本文深入解析了NumPy数组的形状和重塑。数组形状是表示数组维度和大小的元组,可通过`shape`属性获取。重塑允许改变数组形状而不改数据,需保证元素总数不变。`reshape`方法用于重塑,其中`-1`可让NumPy自动计算尺寸。注意重塑遵循元素总数相等、仅一次`-1`、内存存储顺序及返回新数组的原则。理解和掌握这些概念对高效使用NumPy处理多维数组至关重要。
|
12天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
28 0
|
23天前
|
JavaScript 前端开发
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
23 1
|
30天前
|
JSON JavaScript 数据格式
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
90 2
|
30天前
|
存储 算法 Serverless
【软件设计师备考 专题 】数据结构深度解析:从数组到图
【软件设计师备考 专题 】数据结构深度解析:从数组到图
56 0
|
30天前
|
机器学习/深度学习 存储 Java
揭秘数组:数据结构的基石与代码实践解析
揭秘数组:数据结构的基石与代码实践解析
9 0

推荐镜像

更多