用Jquery用习惯了,老是用jQuery.parseJSON方法转化json对象。今天总结一下现代浏览器内置的Json处理方法,JSON.parse和JSON.stringify两个常用方法。IE8之前的就不考虑了。
必需。 一个有效的 JSON 字符串。
可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:
-
如果 reviver 返回一个有效值,则成员值将替换为转换后的值。
-
如果 reviver 返回它接收的相同值,则不修改成员值。
-
如果 reviver 返回undefined,则删除成员。(我在FF和chrome下试验的是返回undefined后,会删除成员,返回null,只会赋值为null)
一个对象或数组。
链接 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
例子
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","thirdname":"Mike"}';
var contact = JSON.parse(jsontext);
console.log(contact.surname + ", " + contact.firstname+","+contact.thirdname);
function aa(key,v){
if (key===""){
return v;
}else{
var a="";
if (key=="firstname"){
a = "My"+v;
return a;
}else if (key=="surname"){
return undefined;
}else{
return null;
}
}
}
var c=JSON.parse(jsontext,aa);
console.log(c);
结果
Aaberg, Jesper,Mike Object { firstname="MyJesper", thirdname=null}
2.JSON.stringify() 方法
作用 可以将任意的 JavaScript 值序列化成 JSON 字符串。
语法
JSON.stringify(value[, replacer [, space]])
参数
value
将要序列化成 JSON 字符串的值。
replacer 可选
如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中。关于该参数更详细的解释和示例,请参考使用原生的 JSON 对象一文。
space 可选
指定缩进用的空白字符串,用于美化输出(pretty-print)。
例子
var b = {"firstname":"mike","lastname":"jackson"}; console.log(JSON.stringify(b)); console.log(JSON.stringify(b,null," ")); console.log(JSON.stringify(b,function(k,v){ if (k===""){ return v; } if (k=="firstname"){ return "My"+v; } })); console.log(JSON.stringify(b,function(k,v){ if (k===""){ return v; } if (k=="firstname"){ return "My"+v; } },"\t"));
结果
{"firstname":"mike","lastname":"jackson"} { "firstname": "mike", "lastname": "jackson" } {"firstname":"Mymike"} { "firstname": "Mymike" }这编辑器实在是太难用了。。。。。
相关推荐
主要介绍了JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能,结合实例形式分析了JSON.parse()与JSON.stringify()方法实现深拷贝的相关实现技巧与操作注意事项,需要的朋友可以参考下
还有一个最简单的实现深拷贝的方式,那就是利用 JSON.parse(JSON.stringify(object)) ,但是也 存在一定的局限性。
json.stringify()与json.parse()的区别以及用处.docx
JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了,就是利用 JSON.stringify 将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象。至于这行代码为什么能实现深拷贝,以及它...
本文给大家介绍JSON中key动态设置及JSON.parse和JSON.stringify()的区别讲解,具体详情如下所示: var user_info_json = []; user_info_json[user_info_json.length] = eval('('+ '{'+ id +': '+ value +'}' +...
字串号码JSON.parse / stringify将大数字转换为字符串。 基于 。 尽管大多数JSON解析器都假定数字值具有与IEEE 754 double相同的精度限制,但JSON规范并未说明任何数字精度。 十进制(可选地,科学的)表示法中的...
1. JSON.parse(jsonString): 在一个字符串中解析出JSON对象 var str = '[{href:baidu.com,text:test,orgId:123,dataType:curry,activeClass:haha}]'; JSON.parse(str); 结果: 2. JSON.stringify(obj) : 将一个...
本文给大家简单描述了下JSON.parse()和JSON.stringify()的异同点,十分的实用,有需要的小伙伴可以参考下
toJSONString method and a parseJSON method to Object.prototype. Use of this file is not recommended. json_parse.js: This file contains an alternative JSON parse function that uses recursive descent ...
主要介绍了JavaScript -- JSON.parse 函数 和 JSON.stringify 函数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
json3.js 【JS / JavaScript 中...JavaScript中解析JSON --- JSON.parse()、JSON.stringify()以及$.parseJSON()使用详解 - chunlynn的小屋 - CSDN博客 http://blog.csdn.net/chenchunlin526/article/details/78850924
用于大型 POJO 的基于流的 JSON.parse 和 JSON.stringify 实现 对于大型数据集,存在许多基于流的 JSON 解析或字符串化实现。 这些实现典型的目标时间序列数据、换行符分隔的数据或其他类似数组的数据,例如日志...
解决JSON.stringify在使用时,IE6、7、8会存在兼容问题。
JSON.stringify和JSON.parse替代品,可以处理循环引用(持久引用结构)。 此实现需要具有本机ES6 Map支持的环境,但要比快得多(请参阅带有npm run bench基准测试)。 var CircularJSON = require ( 'circular-...
主要介绍了JSON.parse()和JSON.stringify()使用,需要的朋友可以参考下
JSON(JavaScript Object Notation) 是一种通用数据(前端和后端)。一种轻量级的数据交换格式,易于人们阅读和编写,同时也易于解析和生成,跟任何编程语言都无关。 JSON的表示是扩展名为:.json的文件 1、JSON的...