詳細JSON.stringifyとJSON.parse

JSON.stringify()

MDN:指定された代替品を選択的に交換することができ、または指定された代替の配列である場合、可能な機能がある場合、JavaScriptの値(オブジェクトまたは配列)にJSON.stringify()メソッドは、JSON文字列に変換されます。必要に応じて配列のみ指定された属性を含みます。

文法

// []表示可选参数
JSON.stringify(value[, replacer [, space]])
  • value:への配列とJSON文字列の値
  • replacer:パラメータが関数である場合、シリアル化プロセスは、各属性値によって関数の変換及び処理後のシリアル化され、パラメータが配列の場合、この配列は、属性名を含みます唯一の最終シリアライズさにJSON文字列。パラメータがnullであるか、提供されていない場合、オブジェクトのすべての属性がシリアライズされます
  • space:、出力美しくユーザーを空の文字列のインデントを指定しpretty-print、引数がどのくらいのスペースを表す数値であれば、10の上限を。この値が1未満であれば、それはスペースなしことを意味し、パラメータが文字列の場合、文字列はスペースのようになります。このパラメータが用意されていない場合は、何のスペースは存在しません

返却値

これは、与えられた値を表すJSON文字列を

説明

  • パッケージは、ブール、数値を入力し、文字列は自動的に元の値の配列における対応するプロセスに変換され
console.log(
  JSON.stringify({
    flag: new Boolean(false),
    num: new Number(0),
    str: new String('false'),
  }),
);
// 输出 {"flag":false,"num":0,"str":"false"}
  • undefined、そして、任意の関数のsymbol値は、プロセスの順序は無視されます
console.log(JSON.stringify({ und: undefined, obj: Object }));
// 输出 {}

代用パラメータ

代替パラメータは、配列または機能であってもよいです。機能としては、シリアル化される2つのパラメータ、キーおよび値を有します。

const jsonString = JSON.stringify(
  { name: 'jack', age: 21, gender: 'male' },
  function(key,value){
    return value
  },
  2,
);
console.log(jsonString)
// 输出 
//{
//  "name": "jack",
//  "age": 21,
//  "gender": "male"
//}

スペースパラメータ

結果の文字列の間隔内の空間を制御するためのパラメータ。それは数、複数のスペースの数よりもレベルでインデントのあらゆるレベルでの文字列の場合、それは文字列である場合、各レベルは、より前のインデント文字列レベルでよりなり

console.log(JSON.stringify({ name: 'jack' }, null, 2));
// {
//   "name": "jack"
// }

JSON.parse()

MDN:JSON.parse()メソッドは、説明文字列で構成されるJavaScriptまたはJSON文字列の値を、解決するために使用されます。得られ変換オブジェクトを実行するのリバイバー機能に戻る前にオプション

文法

JSON.parse(text[, reviver])
  • text:に解析するために、JavaScript文字列値
  • reviver:コンバータ、渡されたパラメータは、生成された元の値の解像度を変更するために使用することができれば、コールのタイミングparse関数が戻る前

返却値

objectこのタイプは、所与のに対応jsonテキストオブジェクト/値

console.log(JSON.parse('{}'));
console.log(JSON.parse('{"name": "jack"}'))
const obj = JSON.parse('{"name": "jack"}')
console.log(obj.name);
// 输出
// {}
// { name: 'jack' }
// jack

リバイバー機能

あなたが指定した場合reviverの機能を、JavaScriptが解析された値は、変換が最終的に返される前に通過しますです

const obj = JSON.parse('{"name": "jack"}',function(key,value){
  if(key === '') {
    return value
  }      
  return 'change-'+value
})
console.log(obj.name); //change-jack
公開された17元の記事 ウォンの賞賛0 ビュー392

おすすめ

転載: blog.csdn.net/k19970320j/article/details/104602237
おすすめ