注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itas109的博客

http://blog.csdn.net/itas109

 
 
 

日志

 
 

JSON.stringify 函数 (JavaScript)  

2016-03-23 14:24:14|  分类: JavaScript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx

 


此文章由人工翻译。 将光标移到文章的句子上,以查看原文。 更多信息。

译文
原文

JSON.stringify 函数 (JavaScript)
 

将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串。


语法

JSON.stringify(
value [, replacer] [, space])


参数

value

必需。要转换的 JavaScript 值(通常为对象或数组)。

replacer

可选。用于转换结果的函数或数组。

replacer is a function, JSON.stringify calls the function, passing in the key and value of each member." data-guid="dc82da6b06dbddbd82092ab1f2e96424">如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。undefined, the member is excluded." data-guid="3f6ed2faae8077328981aabbfd99c141">如果此函数返回undefined,则排除成员。根对象的键是一个空字符串:""。

replacer is an array, only members with key values in the array will be converted." data-guid="b9f4f538b46fad2071af80be0070ff6d">如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。replacer array is ignored when the value argument is also an array." data-guid="c4e42b49d6d7eb459295736dd5e1885f">当 value 参数也为数组时,将忽略replacer 数组。

space

可选。向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取。

space is omitted, the return-value text is generated without any extra white space. " data-guid="48c9c3e436879d11ea32ccf4f5259ad9">如果省略 space,则将生成返回值文本,而没有任何额外空格。

space is a number, the return-value text is indented with the specified number of white spaces at each level." data-guid="c57c9137e9716e824e8c1cd9efa7490d">如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格。space is greater than 10, text is indented 10 spaces." data-guid="62860c6d5566f29380fa51408eff10ed">如果 space 大于 10,则文本缩进 10 个空格。

space is a non-empty string, such as '\t', the return-value text is indented with the characters in the string at each level. " data-guid="26e32bdc8f258ec1c90ff5bee638bc05">如果 space 是一个非空字符串(例如“\t”),则返回值文本在每个级别中缩进字符串中的字符。

space is a string that is longer than 10 characters, the first 10 characters are used." data-guid="2dcc16da441fd0521dee86520826e1d8">如果 space 是长度大于 10 个字符的字符串,则使用前 10 个字符。


返回值

一个包含 JSON 文本的字符串。


异常

Exception Condition

例外

条件

替换器参数无效

replacer argument is not a function or an array." data-guid="040d66063407d0d01ab25f3ab162268c">replacer 参数不是函数或数组。

值参数中不支持循环引用

value argument contains a circular reference." data-guid="18e1a545224eec281216ec79d9bb2120">value 参数包含循环引用。


备注

value has a toJSON method, the JSON.stringify function uses the return value of that method." data-guid="36e9d1ed3cab9485274e31ecf79530e7">如果 value 具有 toJSON 方法,则 JSON.stringify 函数将使用该方法的返回值。toJSON method is undefined, the member is not converted." data-guid="7df2e474c28782ca00fa0bc4f8e8a8f4">如果 toJSON 方法的返回值为 undefined,则不转换成员。这使对象能够确定自己的 JSON 表示形式。

undefined, will not be converted." data-guid="e63e958a21e37b823e0ee7747f0c6282">将不会转换不具有 JSON 表示形式的值,例如 undefined。在对象中,将丢弃这些值。在数组中,会将这些值替换为 null。

字符串值以引号开始和结束。所有 Unicode 字符可括在引号中,但必须使用反斜杠进行转义的字符除外。以下字符的前面必须是反斜杠:


 

引号 (")


 

反斜杠 (\)


 

退格键 (b)


 

换页符 (f)


 

换行符 (n)


 

回车符 (r)


 

水平制表符 (t)


 

四个十六进制数字 (uhhhh)


执行顺序

toJSON method exists for the value argument, JSON.stringify first calls the toJSON method." data-guid="7f5dacc0cc5c7fede49822f7d710afc7">在序列化过程中,如果 value 参数对应有 toJSON 方法,则 JSON.stringify 将首先调用 toJSON 方法。如果该方法不存在,则使用原始值。replacer argument is provided, the value (original value or toJSON return-value) is replaced with the return-value of the replacer argument." data-guid="8cf5b4f667905fca26e310d23677eec9">接下来,如果提供 replacer 参数,则该值(原始值或 toJSON 返回值)将替换为 replacer 参数的返回值。space argument to generate the final JSON text." data-guid="58fa4a5642c18dd7a1a7244d8b3e5dd2">最后,根据可选 space 参数向该值添加空格以生成最终的 JSON 文本。


 

JSON.stringify to convert the contact object to JSON text.' data-guid="64aaf1f97511d6a8136e8db047e29e4b">此示例使用 JSON.stringify 将 contact 对象转换为 JSON 文本。memberfilter array is defined so that only the surname and phone members are converted.' data-guid="e21a2dd80d898e3beac17869af974980">定义 memberfilter 数组以便只转换 surname 和 phone 成员。firstname member is omitted.' data-guid="bc81c0080eb86d0ac8d4a2dd144d86f1">省略 firstname 成员。


JavaScript

var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

var memberfilter = new Array();
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 with an array." data-guid="41c249e8c7804784204d7f45ba51321c">此示例将 JSON.stringify 与一个数组一起使用。replaceToUpper function converts every string in the array to uppercase.' data-guid="77c4c2e7ea29e7c7a1411998db1a2ece"> replaceToUpper 函数将数组中的每个字符串转换为大写形式。


JavaScript

var continents = new Array();
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 method to convert string values to uppercase. " data-guid="bd0935cc87af6037acec7d9f04e10d97">此示例使用 toJSON 方法将字符串值转换为大写形式。


JavaScript

var contact = new Object();
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"]}



'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'
*/


要求

在以下文档模式中受到支持:Internet Explorer 8 标准模式、Internet Explorer 9 标准模式、Internet Explorer 10 标准模式、Internet Explorer 11 标准模式。此外,也在应用商店应用(Windows 8 和 Windows Phone 8.1)中受支持。请参阅版本信息

在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式。


请参阅

JSON.parse 函数 (JavaScript)
toJSON 方法 (Date) (JavaScript)
订阅源阅读器示例应用(Windows 应用商店)


  评论这张
 
阅读(39)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017