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请求的核心 ...
随机推荐
- ng-cookie 的基本使用
2.angular-cookie - 配置$cookiesProvider ```angular.module("Demo",[]).config(["$cookiesP ...
- jquery基础篇
1.jquery选择器和css选择器的关系: jquery的选择器是源于css,jquery支持css1和css2的全部和css3 的部分选择器,同时它也有少量独有的选择器. 2.常用jquery选择 ...
- flash Timer类使用
var timer:Timer = new Timer(1000); timer.addEventListener("timer",tracerTimer); function t ...
- iOS之FMDB 转载
写的较好的博客:http://blog.csdn.net/xyz_lmn/article/details/9312837 http://www.cnblogs.com/wuhenke/archiv ...
- 彻底解决android读取中文txt的乱码(自动判断文档类型并转码
原文:http://blog.csdn.net/handsomedylan/article/details/6138400 public String convertCodeAndGetText(St ...
- MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
参考资料: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-privilege-distribution.html http://www.cl ...
- 【设计模式】学习笔记17:代理模式之保护代理与Java反射
本文出自 http://blog.csdn.net/shuangde800 本笔记内容: 1. Java动态代理,反射机制 2. 保护代理 3. 应用保护代理实现的约会系统 ----------- ...
- pomelo 服务器开发常用术语
gate服务器 一个应用的gate服务器,一般不参与rpc调用,也就是说其配置项里可以没有port字段,仅仅有clientPort字段,它的作用是做前端的负载均衡.客户端往往首先向gate服务器发出请 ...
- Maven学习小结(三 基本概念)
1.Maven POM POM(Project Object Model)项目对象模型,是用Maven来管理项目里的一个叫做pom.xml的文件.所有的项目配置信息都被定义在这个文件中, 通过这个文件 ...
- mvn打包
mvn install -DskipTests mvn install -Dmaven.test.skip=true