強力なJSON.STRINGIGHYオプションパラメータ

3501 ワード

私の頭の中で非常に面白い問題を下準備しておきます.彼を分かち合います.難しい問題があったら参考にしてください.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に変換されると仮定します.私が間違っていると推測しました.SetWeakSetMapWeakMapは無視または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"
// ?]
// }
  • 私のブログ:number
  • 私のemail neverland.githb.io