JSON (JavaScript Object Notation)


JSON (JavaScript Object Notation)


データの格納または転送に使用される軽量レベルのデータ交換規格

特長


  • 通常、サーバとクライアント間のコミュニケーションで使用されます.

  • JSONフォーマットはnull, number, string, array, object, booleanを提供します.

  • JSON形式はJavaScriptオブジェクトと同様にkey/value形式で構成され、キー値または文字列は常に二重引用符("")でマークされます.
  • JSON.stringify()

  • オブジェクトをJSONに変換します.
  • let student = {
      name: 'John',
      age: 30,
      isAdmin: false,
      courses: ['html', 'css', 'js'],
      wife: null
    };
    
    let json = JSON.stringify(student);
    
    alert(typeof json); // 문자열이네요!
    
    alert(json);
    /* JSON으로 인코딩된 객체:
    {
      "name": "John",
      "age": 30,
      "isAdmin": false,
      "courses": ["html", "css", "js"],
      "wife": null
    }
    */

  • JSON.stringgify(student)が呼び出されると、studentは文字列に置き換えられます.

  • これらの変更された文字列をJSON符号化されたオブジェクト、シリアル処理されたオブジェクト、文字列変換されたオブジェクト、および集約されたオブジェクトと呼ぶ.

  • オブジェクトを文字列に変換してからのみ、ネットワークを介して転送またはリポジトリに格納できます.
  • JSON.stringgify呼び出し時に無視されるProperty


  • かんすうせってい

  • 構成部品プロファイル(鍵付きプロファイル)

  • 値は未定義のプロパティ
  • JSON.stringgifyプロパティ

    let json = JSON.stringify(value[, replacer, space])
  • value:エンコードする値
  • replacer:JSONにエンコードしたいPropertyを含む配列.またはマッピング関数(key、value)
  • space:フォーマットを変更する空白文字数
  • replacer


  • パラメータreplacerに配列が追加されると、配列の値は解析され、許容プロファイルとして追加される.つまり、これだけ返します!私の意味です.

  • replacer値が存在しないかnullの場合、すべての値が返されます.
  • // 두번 째 인자로 배열을 넣어주면, 그 key값만 참조해서 반환한다.
    json = JSON.stringify(rabbit, ['name', 'size']);
    // {"name":"tori","size":null}

    space

  • は、可読性を向上させるために真ん中に挿入するスペースの数を表すパラメータです.
  • let user = {
      name: "John",
      age: 25,
      roles: {
        isAdmin: false,
        isEditor: true
      }
    };
    
    alert(JSON.stringify(user, null, 2));
    /* 공백 문자 두 개를 사용하여 들여쓰기함:
    {
      "name": "John",
      "age": 25,
      "roles": {
        "isAdmin": false,
        "isEditor": true
      }
    }
    */
    
    /* JSON.stringify(user, null, 4)라면 아래와 같이 좀 더 들여써집니다.
    {
        "name": "John",
        "age": 25,
        "roles": {
            "isAdmin": false,
            "isEditor": true
        }
    }
    */

    JSON.parse()

  • JSONを対象に置き換えます.
  • let value = JSON.parse(str, [reviver]);
  • str:JSON形式の文字列
  • reviver:すべての(key,value)ペアを呼び出す関数(key,value)形式の関数に値を変更できます.
  • // 문자열로 변환된 배열
    let numbers = "[0, 1, 2, 3]";
    
    numbers = JSON.parse(numbers);
    
    alert( numbers[1] ); // 1
    
    
    // 중첩 객체
    let userData = '{ "name": "John", "age": 35, "isAdmin": false, "friends": [0,1,2,3] }';
    
    let user = JSON.parse(userData);
    
    alert( user.friends[1] ); // 1

    reviver

  • 関数の名前から分かるように、オブジェクトに変換すると、独自の組み込み関数または構成部品を使用でき、リカバリとリカバリ機能があります.
  • let json = JSON.stringify(true);
    console.log(json)
    
    json = JSON.stringify(['apple','banana'])
    console.log(json)
    
    const rabbit = {
        name : 'coco',
        color : 'white',
        size : null,
        birthDate : new Date(),
        jump : ()=>{
            console.log(`${name} can jump`)
        },
    };
    
    json = JSON.stringify(rabbit);
    console.log(json);
    
    json = JSON.stringify(rabbit, ["name"]); // 내가 원하는 속성만 골라서 JSON으로 변환 가능
    console.log(json);
    
    json = JSON.stringify(rabbit, (key, value)=>{
        // callback 사용 가능
    });
    
    // 1번째
    json = JSON.stringify(rabbit)
    const obj = JSON.parse(json)
    console.log(obj)
    rabbit.jump() // 사용이 가능한 이유는 JSON으로 변환 할 때 함수가 포함되어 있지 않았기 때문
    obj.jump() // 에러 발생
    
    // 2번째, reviver
    json = JSON.stringify(rabbit)
    const obj = JSON.parse(json, (key, value)=>{
        return key === 'birthDate' ? new Date(value) : value;
    })
    console.log(obj)
    rabbit.jump() // 사용이 가능한 이유는 JSON으로 변환 할 때 함수가 포함되어 있지 않았기 때문
    //obj.jump() // 에러 발생
    
    console.log(rabbit.birthDate.getDate())
    console.log(obj.birthDate.getDate()) // 에러없이 출력 가능

    整理する

  • JSON.stringifyでは、必要な値をJSONにシリアル化できます.
  • JSON.parseを使用して、JSONを元の値に逆シーケンス化します.
  • リファレンス

  • MDN, JSON
  • https://ko.javascript.info/json
  • JavaScriptを使用したjsonの処理
  • コード安息所
  • 夢のコード