JavaScript解析json
后台数据经常以json数据格式传回前台,解析当然首选JSON对象。
JSON对象有两个方法,使用JSON.parse(str)可以将json字符串解析成js中的对象。
var o = JSON.parse('{"name":"zjz","age":"23"}');
console.log(o);
//Object {name: "zjz", age: "23"}
同时这个方法还可以接收第二个参数,这个参数是个函数,参数为转换后对象的键和对应的值。
JSON.parse('{"name":"zjz", "age":"23"}', function(key, value) {
console.log(key + ':' + value)}
);
//name:zjz
//age:23
与parse相对的是stringify函数,作用是将js对象序列化为一个json字符串。
var obj = {name: 'zjz', age: '23'};
var json = JSON.stringify(obj);
//"{"name":"zjz","age":"23"}"
但JSON对象IE8之前的浏览器不支持。
第二种方法,是通过eval。
eval('(' + '{"name":"zjz","age":"23"}' + ')');
//Object {name: "zjz", age: "23"}
需要注意的是在解析字符串的时候,需要在字符串之外加上括号,使其成为表达式,然后eval进行计算。
eval解析JSON中的注意点 这篇文章里讲的挺详细的。
大家都不建议用eval。
第三种方法,使用Function。
var o = new Function('return ' + '{"name":"zjz","age":"23"}')();
//Object {name: "zjz", age: "23"}
所以在解析JSON,可以先用parse,如果不支持再使用Function。
try {
JSON.parse(str);
} catch(e) {
try {
return (new Function('return ' + str))();
} catch(e) {
alert('json error');
}
}
文中的输出都是chrome浏览器下的开发者工具的输出结果。
JavaScript解析json的更多相关文章
- Json -- 语法和示例,javascript 解析Json
1. 语法 JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不 ...
- VBA中使用JavaScript脚本语言解析JSON数据
JSON:JavaScript 对象表示法(JavaScript Object Notation) 和xml相似,都是文本形式(保存在文本文件中或字符串等形式),比如: jsstr = {" ...
- [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")
javascript eval函数解析json数据时为什么 加上圆括号?为什么要 eval这里要添加 “("("+data+")");//”呢? 原因在于: ...
- JSON介绍与JavaScript解析
首先什么是JSON? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 JSON ...
- javascript如何解析json对javascript如何解析json对象并动态赋值到select列表象并动态赋值到select列表
原文 javascript如何解析json对象并动态赋值到select列表 JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScri ...
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
- JavaScript转换与解析JSON的方法
在JavaScript中将JSON的字符串解析成JSON数据格式,一般有两种方式: 一种为使用eval()函数. 使用Function对象来进行返回解析. 使用eval函数来解析,jquery的eac ...
- JavaScript中解析JSON --- json.js 、 json2.js 以及 json3.js的使用区别
JSON官方(http://www.json.org/)提供了一个json.js,json.js是JSON官方提供的在JavaScript中解析JSON的js包,json.js.json2.js.js ...
- javascript 解析ajax返回的xml和json格式的数据
写个例子,以备后用 一.JavaScript 解析返回的xml格式的数据: 1.javascript版本的ajax发送请求 (1).创建XMLHttpRequest对象,这个对象就是ajax请求的核心 ...
随机推荐
- CentOS6.5配置MySQL主从同步
原文地址:http://www.cnblogs.com/zhongshengzhen/ 修改主MySQL的配置 [root@localhost etc] vi /etc/my.cnf 添加以下配置 ...
- H5页面请求跨域问题
1. <meta http-equiv="Access-Control-Allow-Origin" content="*"> 说明一下什么情况下我 ...
- iOS开发中的测试框架 (转载)
作者:CrespoXiao授权 地址:http://www.jianshu.com/p/7e3f197504c1 我们为什么要用测试框架呢?当然对项目开发有帮助了,但是业内现状是经常赶进度,所以T ...
- Postfix配置Q&A
原文地址:http://space.doit.com.cn/51460/viewspace-4943.html 在配置Postfix中遇到的一些问题及相关的解决方法,希望在遇到相同的问题时能起参考的作 ...
- 清空session的方法
清空session的方法,常用来注销的时候清空所有的session. 方法一: Enumeration e=session.getAttributeNames(); while(e.hasMoreEl ...
- 大作业 XXX大学 课程管理系统
#include<stdio.h> #include<iostream> #include<string.h> #include <fstream> # ...
- Abap 内表的语法
ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的 内表支持循环对每行数据进行操作,也支持整体操作 ...
- 代理模式及其在spring与struts2中的体现
代理模式 代理模式有三个角色组成: 1.抽象主题角色:声明了真实主题和代理主题的共同接口. 2.代理主题角色:内部包含对真实主题的引用,并且提供和真实主题角色相同的接口. 3.真实主题角色:定义真实的 ...
- Linux性能优化--CPU[备忘]
http://kumu-linux.github.io/blog/2014/04/21/performance-cpu/
- java_TreeSet 定制排序实例
package ming; import java.util.Comparator; import java.util.TreeSet; class M { int age; public M(int ...