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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 做网页总会使用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/

相关文章
|
3月前
|
SQL 存储 JSON
SQL,解析 json
SQL,解析 json
89 8
|
1月前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
107 67
|
9天前
|
JSON JavaScript 前端开发
一次采集JSON解析错误的修复
两段采集来的JSON格式数据存在格式问题,直接使用PHP的`json_decode`会报错。解决思路包括:1) 手动格式化并逐行排查错误;2) 使用PHP-V8JS扩展在JavaScript环境中解析。具体方案一是通过正则表达式和字符串替换修复格式,方案二是利用V8Js引擎执行JS代码并返回JSON字符串,最终实现正确解析。 简介: 两段采集的JSON数据因掺杂JavaScript代码导致PHP解析失败。解决方案包括手动格式化修复和使用PHP-V8JS扩展在JavaScript环境中解析,确保JSON数据能被正确处理。
|
3月前
|
存储 JSON JavaScript
JavaScript JSON
【10月更文挑战第7天】JSON 是 JavaScript 中非常重要的一个数据格式,它为数据的表示和传输提供了一种简单而有效的方式。掌握 JSON 的使用方法和特点,对于开发高质量的 JavaScript 应用具有重要意义。
|
3月前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
3月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
108 2
|
4月前
|
存储 JSON JavaScript
js中JSON的使用
介绍JSON的基本概念和在JavaScript中的使用方式,包括JSON格式的语法规则、使用`JSON.stringify()`和`JSON.parse()`方法进行对象与字符串的转换,以及处理JSON数组数据。
js中JSON的使用
|
3月前
|
存储 JavaScript 前端开发
JavaScript Array
【10月更文挑战第06天】
40 15
|
2月前
|
JavaScript 前端开发 开发者
|
3月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
38 3