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+