強力なJSON.STRINGIGHYオプションパラメータ
3501 ワード
私の頭の中で非常に面白い問題を下準備しておきます.彼を分かち合います.難しい問題があったら参考にしてください.
技術まとめ私のブログ:number 私のemail neverland.githb.io
JSON.stringify()
の面白いところを見せてください.const dude = {
name: "Pawel",
friends: ["Dan", "Pedro", "Mr Gregory"]
};
const dudeStringified = JSON.stringify(dude);
console.log(dudeStringified);
// {"name":"Pawel","friends":["Dan","Pedro","Mr Gregory"]}
ハイライトはありません.ピットさんは私のプロジェクトの中でECMAScriptを使ってデータ構造を処理しなければなりません.事柄が複雑になりました.次の例を見てください.
const dude = {
name: "Pawel",
friends: new Set(["Dan", "Pedro", "Mr Gregory"])
};
const dudeStringified = JSON.stringify(dude);
console.log(dudeStringified);
// {"name":"Pawel","friends":{}}
セットの値が普通のarrayに変換されると仮定します.私が間違っていると推測しました.Set
、WeakSet
、Map
、WeakMap
は無視またはnull
に置き換えられている.まだ希望があります.セットの第二のオプションパラメータにより、JSON.stringify()
をArayとして扱うことができます.
const dude = {
name: "Pawel",
friends: new Set(["Dan", "Pedro", "Mr Gregory"])
};
const dudeStringified = JSON.stringify(dude, (key, value) =>
value instanceof Set ? [...value] : value
);
console.log(dudeStringified);
// {"name":"Pawel","friends":["Dan","Pedro","Mr Gregory"]}
綺麗にしましたか技術まとめ
Set
の第2のオプションパラメータは、再帰的代替関数または配列の文字列化keyであってもよい.
// Second argument as a replacer function
const dude = {
name: "Dan"
};
const dudeStringified = JSON.stringify(dude, (key, value) =>
key === "name" ? "Pawel" : value
);
console.log(dudeStringified);
// {"name":"Pawel"}
// Second argument as an array of white-listed keywords
const dude = {
name: "Pawel",
friends: new Set(["Dan", "Pedro", "Mr Gregory"])
};
const dudeStringified = JSON.stringify(dude, ["name"]);
console.log(dudeStringified);
// {"name":"Pawel"}
第3のパラメータは、JSON.stringify()
またはstring
であってもよく、彼は、定義子としてのスペースまたはテキストの数を感じる.
// Third argument as a number
const dude = {
name: "Pawel",
friends: ["Dan", "Pedro", "Mr Gregory"]
};
const dudeStringified = JSON.stringify(dude, null, 4);
console.log(dudeStringified);
// {
// "name": "Pawel",
// "friends": [
// "Dan",
// "Pedro",
// "Mr Gregory"
// ]
// }
// Third argument as a string
const dude = {
name: "Pawel",
friends: ["Dan", "Pedro", "Mr Gregory"]
};
const dudeStringified = JSON.stringify(dude, null, "?");
console.log(dudeStringified);
// {
// ?"name": "Pawel",
// ?"friends": [
// ??"Dan",
// ??"Pedro",
// ??"Mr Gregory"
// ?]
// }