JSON


JSON (JavaScript Object Notation)

  • は、最も簡単なデータ交換フォーマットデータを送信および受信する際に使用される最も簡単なフォーマットである.
  • は軽量レベルのテキスト-構造テキストに基づいているので、簡単です.
  • は読みやすいです.
  • キー値対キー値タイプ
  • は、ネットワーク間のデータのシリアル化およびネットワーク接続データの伝送のために使用され、サーバとデータを交換する際にシリアル化され、その後、伝送のために使用される.
  • 独立プログラミング言語とプラットフォームプログラミング言語はプラットフォームとは無関係である.
  • 1. Object to JSON


    stringfy(obj)

    let json = JSON.stringify(true);
    console.log(json); // true
    
    json = JSON.stringify(['apple', 'banana']);
    console.log(json); // ["apple", "banana"]
    
    const rabbit = {
      name: 'tori',
      color: 'white',
      size: null,
      birthDate: new Date(),
      jump: function () {
        console.log(`${this.name} can jump!`);
      },
    };
    
    json = JSON.stringify(rabbit);
    console.log(json);
    // {"name":"tori", "color":"white", "size": null, "birthDate" : "2021-01-16T10:33:22.670Z"}
    // 함수는 Oject에 있는 데이터가 아니기 때문에 JSON에 포함되지 않는다. 그리고 자바스크립트에만 있는 특별한 데이터도 포함되지 않는다.
    json = JSON.stringify(rabbit, ['name', 'color', 'size']);
    console.log(json);
    // {"name" : "tori", "color" : "white", "size" : null}
    json = JSON.stringify(rabbit, (key, value) => {
      console.log(`key: ${key}, value: ${value}`);
      return key === 'name' ? 'j' : value;
    });
    console.log(json);
    // {"name":"j", "color":"white", "size": null, "birthDate" : "2021-01-16T10:33:22.670Z"}

    2. JSON to Object


    parse(json)

    console.clear();
    json = JSON.stringify(rabbit);
    console.log(json);
     // {"name":"j", "color":"white", "size": null, "birthDate" : "2021-01-16T10:33:22.670Z"}
    const obj = JSON.parse(json, (key, value) => {
      console.log(`key: ${key}, value: ${value}`);
      return key === 'birthDate' ? new Date(value) : value;
    });
    console.log(obj);
    // {name:"j", color:"white", size: null, birthDate : "2021-01-16T10:33:22.670Z"}
    rabbit.jump(); // can jump!
    // obj.jump(); -> const rabbit이 JSON으로 만들어질때 jump() 함수는 포함되지 않아서 다시 object로 변환하면 없는 것이다.
    
    console.log(rabbit.birthDate.getDate()); // 16
    console.log(obj.birthDate.getDate()); // error! rabbit.jump()와 비슷한 케이스
    EllyベースDREAM符号化
    https://www.youtube.com/playlist?list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2