JavaScript JSON.stringify()
-
Stringify一个JavaScript对象
JSON的一个常见用途是与Web服务器交换数据。将数据发送到Web服务器时,数据必须是字符串。JSON.stringify()将JavaScript对象转换为字符串。想象一下,我们在JavaScript中有这个对象:var obj = { name: "John", age: 30, city: "New York" };
使用JavaScript函数JSON.stringify()将其转换为字符串。var myJSON = JSON.stringify(obj);
结果将是遵循JSON表示法的字符串。
myJSON 现在是一个字符串,并准备发送到服务器:
尝试一下var obj = { name: "John", age: 30, city: "New York" }; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
您将在下一章学习如何将JSON发送到服务器。 -
Stringify一个JavaScript数组
也可以对JavaScript数组进行字符串化:想象一下,我们在JavaScript中有这个数组:var arr = [ "John", "Peter", "Sally", "Jane" ];
使用JavaScript函数JSON.stringify()将其转换为字符串。var myJSON = JSON.stringify(arr);
结果将是遵循JSON表示法的字符串。
myJSON 现在是一个字符串,并准备发送到服务器:
尝试一下var arr = [ "John", "Peter", "Sally", "Jane" ]; var myJSON = JSON.stringify(arr); document.getElementById("demo").innerHTML = myJSON;
您将在下一章学习如何将JSON发送到服务器。 -
例外 - Stringify日期
在JSON中,不允许使用日期对象。该JSON.stringify()函数将任何日期转换为字符串。
尝试一下var obj = { name: "John", today: new Date(), city : "New York" }; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
-
例外 - Stringify函数
在JSON中,不允许函数作为对象值。JSON.stringify()函数将从JavaScript对象中删除任何函数,包括键和值:
尝试一下var obj = { name: "John", age: function () {return 30;}, city: "New York"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
如果在运行JSON.stringify()函数之前将函数转换为字符串,则可以省略此项。
尝试一下var obj = { name: "John", age: function () {return 30;}, city: "New York" }; obj.age = obj.age.toString(); var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
您应该避免在JSON中使用函数,函数将失去其范围,您必须使用eval()它们将它们转换回函数。
-
浏览器支持
JSON.stringify()函数包含在所有主流浏览器和最新的ECMAScript(JavaScript)标准中。下表中的数字指定了完全支持该JSON.stringify()功能的第一个浏览器版本:Edge/IE Chrome FireFox Safari Opera 8.0+ 支持 3.5+ 4.0+ 10.0+