JSON.stringify和JSON.parse的使用
JSON.stringify 函数 (JavaScript)
将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串。
JSON.stringify(value [, replacer] [, space])
value
必需。 要转换的 JavaScript 值(通常为对象或数组)。
replacer
可选。 用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。 使用返回值而不是原始值。 如果此函数返回 undefined,则排除成员。 根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。 成员的转换顺序与键在数组中的顺序一样。 当 value 参数也为数组时,将忽略 replacer 数组。
space
可选。 向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取。
如果省略 space,则将生成返回值文本,而没有任何额外空格。
如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格。 如果 space 大于 10,则文本缩进 10 个空格。
如果 space 是一个非空字符串(例如“\t”),则返回值文本在每个级别中缩进字符串中的字符。
如果 space 是长度大于 10 个字符的字符串,则使用前 10 个字符。
该返回值为:一个包含 JSON 文本的字符串。
实例:
var contact = new Object(); //新建一个对象contact
contact.firstname = "Jesper"; 
contact.surname = "Aaberg"; 
contact.phone = ["555-0100", "555-0120"];
var memberfilter = new Array(); //新建一个数组memberfilter
memberfilter[0] = "surname"; 
memberfilter[1] = "phone"; 
var jsonText = JSON.stringify(contact, memberfilter, "\t"); 
//第二个参数是数组,只会序列化返回数组里列出的名称
document.write(jsonText); 
// Output: 
// { "surname": "Aaberg", "phone": [ "555-0100", "555-0120" ] }
此示例将 JSON.stringify 与一个数组一起使用。
replaceToUpper
函数将数组中的每个字符串转换为大写形式。
var continents = new Array(); //新建一个数组continents
continents[0] = "Europe"; 
continents[1] = "Asia"; 
continents[2] = "Australia"; 
continents[3] = "Antarctica"; 
continents[4] = "North America"; 
continents[5] = "South America"; 
continents[6] = "Africa";
var jsonText = JSON.stringify(continents, replaceToUpper); //进行第二个参数为函数
function replaceToUpper(key, value) { 
    return value.toString().toUpperCase(); 
}
//Output: 
// "EUROPE,ASIA,AUSTRALIA,ANTARCTICA,NORTH AMERICA,SOUTH AMERICA,AFRICA" 
//此示例使用 toJSON 方法将字符串值转换为大写形式。
var contact = new Object(); //新建一个对象contact
contact.firstname = "Jesper"; 
contact.surname = "Aaberg"; 
contact.phone = ["555-0100", "555-0120"];
contact.toJSON = function(key) 
 { 
    var replacement = new Object(); 
    for (var val in this) 
    { 
        if (typeof (this[val]) === 'string') 
            replacement[val] = this[val].toUpperCase(); 
        else 
            replacement[val] = this[val] 
    } 
    return replacement; 
};
var jsonText = JSON.stringify(contact); 
document.write(jsonText);
// Output: 
//{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}
JSON.parse 函数 (JavaScript)
将 JavaScript 对象表示法 (JSON) 字符串转换为对象。
JSON.parse(text [, reviver])
text
必需。 一个有效的 JSON 字符串。
reviver
可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:
如果 reviver 返回一个有效值,则成员值将替换为转换后的值。
如果 reviver 返回它接收的相同值,则不修改成员值。
如果 reviver 返回 null 或 undefined,则删除成员。
返回值为:一个对象或数组
//以下示例使用 JSON.parse 将 JSON 字符串转换成对象。
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}'; 
var contact = JSON.parse(jsontext); //转换为对象
document.write(contact.surname + ", " + contact.firstname);
// Output: Aaberg, Jesper
以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse 将该字符串重新转换成数组。
var arr = ["a", "b", "c"]; 
var str = JSON.stringify(arr); 
document.write(str); 
document.write ("<br/>");
var newArr = JSON.parse(str);
while (newArr.length > 0) { 
    document.write(newArr.pop() + "<br/>"); 
}
// Output: 
// ["a","b","c"] 
// c 
// b 
// a
reviver 函数通常用于将国际标准化组织 (ISO) 日期字符串的 JSON 表示形式转换为协调世界时 (UTC) 格式 Date 对象。 此示例使用 JSON.parse 来反序列化 ISO 格式的日期字符串。
dateReviver
函数为格式为 ISO 日期字符串的成员返回
Date
对象。
var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }'; 
var dates = JSON.parse(jsontext, dateReviver); 
document.write(dates.birthdate.toUTCString());
function dateReviver(key, value) { 
    var a; 
    if (typeof value === 'string') { 
        a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); 
        if (a) { 
            return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], 
                            +a[5], +a[6])); 
        } 
    } 
    return value; 
};
// Output: 
// Thu, 25 Dec 2008 12:00:00 UTC
JSON.stringify和JSON.parse的使用的更多相关文章
- JSON.stringify()和JOSN.parse()
		
JSON.stringify()跟JSON.parse() 终于把这两个方法搞清楚了!!! JSON.tringify():把一个json数据转化成JSON string JSON.stringify ...
 - JSON 解析器。JSON.stringify和JSON.parse
		
以前用的是JavaScript 的eval. 现在JSON 提供了JSON.stringify和JSON.parse两个函数. JSON.parse用于从一个字符串中解析出json对象. JSON. ...
 - json.stringify()的妙用,json.stringify()与json.parse()的区别
		
一.JSON.stringify()与JSON.parse()的区别 最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将 JavaS ...
 - ZH奶酪:JavaScript中的JSON.stringify() and JSON.parse()
		
JSON.stringify() JSON.stringify()可以将任意的JavaScript值序列化成JSON字符串. 语法 JSON.stringify(value[, replacer [, ...
 - 关于JSON.stringify()与JSON.parse()
		
一.JSON.stringify()与JSON.parse()的区别 JSON.stringify()的作用是将js值转换成JSON字符串,而JSON.parse()是将JSON字符串转换成一个对象. ...
 - JSON.stringify()与JSON.parse()
		
JSON.stringify()用于把一个对象解析成字符串,如 var student = { age: 23, name: 'wang' } JSON.stringify(student); 结果: ...
 - JSON.stringify()和JSON.parse()
		
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...
 - 日常积累之JSON.stringify和JSON.parse   substr
		
1.substr(start,len) 从字符串中读取内容,第一个参数是读取的首位置,如果为负数,则从末尾倒数计数. 第二个参数是要读取的长度. eg: var str = "silence ...
 - JSON.stringify()、JSON.parse()和eval(string)
		
1.JSON.stringify()用于从一个对象解析出字符串,eg: var obj = {"name":"奔跑的蜗牛","age":&q ...
 - Js中JSON.stringify()与JSON.parse()与eval()详解及使用案例
		
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使使JSON称为理想的数据交换语 ...
 
随机推荐
- highcharts点击事件系列
			
http://www.highcharts.com/demo/line-ajax 参考设置(bar 柱状图) plotOptions: { series: { ...
 - CountVectorizer()类解析
			
主要可以参考下面几个链接: 1.sklearn文本特征提取 2.使用scikit-learn tfidf计算词语权重 3.sklearn官方中文文档 4.sklearn.feature_extra ...
 - php 事务处理,ActiveMQ的发送消息,与处理消息
			
可以通过链式发送->处理->发送...的方式处理类似事务型业务逻辑 比如 发送一个注册消息,消息队列处理完注册以后,紧接着发送一个新手优惠券赠送,赠送完再发一个其它后续逻辑处理的消息等待后 ...
 - 2018.07.23 洛谷P4513 小白逛公园(线段树)
			
传送门 线段树常规操作了解一下. 单点修改维护区间最大连续和. 对于一个区间,维护区间从左端点开始的连续最大和,从右端点开始的连续最大和,整个区间最大和,区间和. 代码如下: #include< ...
 - 2018.07.22 codeforces750E(线段树维护状态转移)
			
传送门 给出一个数字字串,给出若干个询问,询问在字串的一段区间保证出现2017" role="presentation" style="position: re ...
 - Class^=,Class*= ,Class$=含义(转)
			
在Twitter 中有看到如下selector: .show-grid [class*="span"] { background-color: #eee; text-align: ...
 - A标签中传递的中文参数到Servlet 后台request.getParameter()接收时出现中文乱码
			
package util; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequ ...
 - Dbutils学习(介绍和入门)
			
一:Dbutils是什么?(当我们很难理解一个东西的官方解释的时候,就让我们记住它的作用) Dbutils:主要是封装了JDBC的代码,简化dao层的操作. 作用:帮助java程序 ...
 - 测试-LoadRunner
			
1录脚本 设置解析方式,html形式,会精炼成一个函数,此时找有用的url,写出函数:url方式,函数比较多. 参数化 两参数成对时,在脚本处选成对. 加上进程,加上返回值判断. 最后一段接口url, ...
 - 《Forward团队-爬虫豆瓣top250项目-代码设计规范》
			
成员:马壮,李志宇,刘子轩,年光宇,邢云淇,张良 1.缩进采用一个Tab键 2.大括号:如: if (条件){ 语句: } 3.分行:不把多条语句放在同一行 4.变量命名:统一用英文 5.注释:注释前 ...