JSON.streingifyはこのように使うことができますか?
2186 ワード
JSON.stringify
このAPIはみんな使ったことがあると思います.データを文字列の種類に解析してくれます.let obj = {
name: 'lxcan',
age: 18,
hobby: 'sleep',
money: null
};
JSON.stringify(obj);
// '{"name":"lxcan","age":18,"hobby":"sleep","money":null}'
このような書き方はみんな知っていますが、実はJSON.stringify
は全部で三つのパラメータを受け入れます.2番目のパラメータは、1つの配列または関数に入ることができます.
まず、着信配列の結果は何ですか?
//
JSON.stringify(obj, ['name', 'age']);
// '{"name":"lxcan","age":18}'
行列に入るときは、行列内の属性名だけが通常の順序で並べられていることが見られます.二番目のパラメータが入る関数は何ですか?
//
let obj1 = {
name: new Set([1])
};
JSON.stringify(obj1, (key, value) => {
return value instanceof Set ? [...value] : value
});
// "{"name":{}}"
// "{"name":[1]}"
//
let obj2 = {
lxc: new Map([['name', 'lxcan'], ['age', 18]])
};
JSON.stringify(obj2, (key, value) => {
return value instanceof Map ? [...value] : value
});
// "{"lxc":{}}"
// "{"lxc":[["name","lxcan"],["age",18]]}"
JSON.stringify
はいくつかの値を扱うことができないことを知っています.例えば、例のSet/Mapタイプの値が正常に順序付けられないということです.しかし、実際には、入力関数によって、Set/Mapタイプの値を配列タイプに変換することができ、データを通常の順序に並べ替えることができます.第3のパラメータは、出力を美化するために使用される数字または文字列タイプに入ることができる.通常出力の結果は1行のテキストで、データ量が小さい時に読むのはストレスがないですが、膨大なデータ量があると読みにくいです.このパラメータはこの時に非常に有用である.
//
JSON.stringify(obj, null, 2);
// {
// "name": "lxcan",
// "age": 18,
// "hobby": "sleep",
// "money": null
// }
数値が入ると、各属性は改行され、字下げされたスペースがあります.//
JSON.stringify(obj, null, '--');
// {
// --"name": "lxcan",
// --"age": 18,
// --"hobby": "sleep",
// --"money": null
// }
文字列が入ってくると、各属性はそのまま改行されます.また、先頭にあなたが入ってきた文字列が追加されます.以上はこの文章の内容です.これは単にAPIの分野の知識ですが、大部分の学生は
JSON.stringify
がまだこのような能力を持っていることを知らないはずです.