免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
4、JSON.stringify()
Webサーバーにデータを送信する場合、データは文字列でなければなりません。
JSON.stringify()によって文字列JavaScriptオブジェクトに変換します。
の文字列をJavaScriptのオブジェクト
JavaScriptでありオブジェクトOBJ:
var obj = { name:"Bill Gates", age:62, city:"Seattle"};
JSON.stringifyを使ったJavaScript関数は、()文字列に変換します。
var myJSON = JSON.stringify(obj);
結果は、文字列のJSON表記に準拠することになります。
文字列化JavaScriptの配列
また、JavaScriptの配列の文字列上で行うことができます。
私はJavaScriptでこの配列を持っています:
var arr = [ "Bill Gates", "Steve Jobs", "Elon Musk" ];
JSON.stringifyを使ったJavaScript関数は、()文字列に変換します。
var myJSON = JSON.stringify(arr);
結果は、JSON表記に準拠した文字列になります。
myJSONは、現在の文字列の一部であり、サーバに送信する準備ができています。
文字列の日付
JSONでは、オブジェクトは、現在までに許可されていません。JSON.stringify()関数は、任意の日付文字列を変換します。
<script>
var obj = { name: "Bill Gates", today: new Date(), city: "Seattle" };
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>
输出:
{"name":"Bill Gates","today":"2019-10-24T10:33:02.054Z","city":"Seattle"}
ファンクション文字列化
JSONのオブジェクト値の関数として許可されていません。
JSON機能では避けるべきである、この関数はその範囲を失うことになるが、あなたはまた戻ってそれらを変換するためにeval()関数を使用する必要があります。
JSON.stringify()関数は、キーと値を含め、任意のJavaScriptオブジェクトの機能を削除します:
<script>
var obj = { name: "Bill Gates", age: function () {return 62;}, city: "Seattle" };
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>
输出:
{"name":"Bill Gates","city":"Seattle"}
<script>
var obj = { name: "Bill Gates", age: function () {return 62;}, city: "Seattle" };
//把函数转换为字符串,就可以在 JSON 对象中保留该函数
obj.age = obj.age.toString();
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>
输出json:
{"name":"Bill Gates","age":"function () {return 62;}","city":"Seattle"}