javascript中的JSON.stringify-将对象和数组转换为json格式(来
源于⽹络)
JSON.stringify 函数 (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 ⽂本的字符串。
如果 value 具有 toJSON ⽅法,则 JSON.stringify 函数将使⽤该⽅法的返回值。如果 toJSON ⽅法的返回值为undefined,则不转换成员。这使对象能够确定⾃⼰的 JSON 表⽰形式。
将不会转换不具有 JSON 表⽰形式的值,例如 undefined。在对象中,将丢弃这些值。在数组中,会将这些值替换为 null。
字符串值以引号开始和结束。所有 Unicode 字符可括在引号中,但必须使⽤反斜杠进⾏转义的字符除外。以下字符的前⾯必须是反斜杠:
引号 (")
反斜杠 (\)
退格键 (b)
换页符 (f)
换⾏符 (n)
回车符 (r)
⽔平制表符 (t)
四个⼗六进制数字 (uhhhh)
此⽰例使⽤ JSON.stringify 将 contact 对象转换为 JSON ⽂本。定义 memberfilter 数组以便只转换 surname 和phone 成员。省略 firstname 成员。var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
typeof arraycontact.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 与⼀个数组⼀起使⽤。 replaceToUpper 函数将数组中的每个字符串转换为⼤写形式。
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) {
String().toUpperCase();
}
//Output:
// "EUROPE,ASIA,AUSTRALIA,ANTARCTICA,NORTH AMERICA,SOUTH AMERICA,AFRICA"
此⽰例使⽤ toJSON ⽅法将字符串值转换为⼤写形式。
var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
{
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 标准模式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论