[TIL] JavaScript: JSON
🔑 Point
🎉 JSONとは?
🎉 stringify (Object to JSON)
🎉 parse (JSON to Object)
JavaScript理論を学ぶ過程で、どこからデータを取得するかに興味を持っています.バックエンドなどいろいろな方法を使っていますが、今回はJSONを学びました.サーバとデータをやり取りするときに使う方法の一つです.(Javascript Object Notation)
fetch()APIを使用して通信できます.
JSONは、ファイルの送受信に最も簡単なファイルフォーマットです. テキストベースの軽量レベルのファイルフォーマット.(読みやすい) キーと値で構成されます.Object{key : value} データは、サーバとのシリアル化(シーケンス化)および伝送のために使用される. プログラミング言語またはプラットフォームを使用できます.(C, C++ JAVA., GO... )ほとんどの言語とは関係ありません.
クライアントからサーバに送信する場合は配列で送信し、逆にサーバptjクライアントからインポートする場合はコミットで入力します.
これを実現するJSON APIには2種類あります.
クライアントからサーバにデータを転送する場合は、データを配列に変換する必要があります.stringfy APIを使用します.はJSON、 に並んでいます objectをJSON に変換コールバック関数を使用してより細かい制御を行う場合.
-->関数の名前は同じですが、異なるパラメータと、複数のパラメータが渡され、異なる方法で呼び出すことができます.
🎉 JSONとは?
🎉 stringify (Object to JSON)
🎉 parse (JSON to Object)
1. JSON?
JSONファイルにデータをインポート~!
JavaScript理論を学ぶ過程で、どこからデータを取得するかに興味を持っています.バックエンドなどいろいろな方法を使っていますが、今回はJSONを学びました.サーバとデータをやり取りするときに使う方法の一つです.(Javascript Object Notation)
fetch()APIを使用して通信できます.
JSONとは?
これを実現するJSON APIには2種類あります.
2. JSON APIs
1)オブジェクトからJSON:stringfy(*シリアル)
クライアントからサーバにデータを転送する場合は、データを配列に変換する必要があります.stringfy APIを使用します.
json = JSON.stringify(['apple', 'banana']);
console.log(json);
// ["apple","banana"] 출력
// ->배열 type처럼 보이면서 ""로 나옴(json 규격)
const rabbit = {
name: 'tori',
color: 'white',
size: null,
birthDate: new Date(),
jump: () => {
console.log(`${this.name} can jump!`);
},
};
json = JSON.stringify(rabbit);
console.log(json);
// {"name":"tori","color":"white","size":null,"birthDate":"2021-03-08T04:44:40.392Z"}
// jump 함수는 나오지 않는다. 왜냐하면 함수는 object에 있는 data가 아니기 때문에~!!!
// 또한 그 외에 javascript에만 있는 특별한 data도 JSON에 포함되지 않는다!
json = JSON.stringify(rabbit, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return key === 'name' ? 'hyojin' : value;
});
console.log(json);
// 이름이 hyojin으로 바뀜
// {"name":"hyojin","color":"white","size":null,"birthDate":"2021-02-21T07:23:17.637Z"}
2)JSON to Object:parse(*分析)
const obj = JSON.parse(json, (key, value) => { // --> A
console.log(`key: ${key}, value: ${value}`);
return key === 'birthDate' ? new Date(value) : value;
});
console.log(obj); // {name: "hyojin", color: "white", size: null, birthDate: Mon Mar 08 2021 13:44:40 GMT+0900 (대한민국 표준시)}
rabbit.jump(); // can jump!
// Error (rabbit->JSON(함수x)->obj(함수x))
console.log(rabbit.birthDate.getDate());
// 8 (오늘 날짜, Date()라는 object)
console.log(obj.birthDate.getDate());
// 8 --> A 에서 key와 value를 이용해 Date를 return해 줘서 Error가 안남
✅ overloading -->関数の名前は同じですが、異なるパラメータと、複数のパラメータが渡され、異なる方法で呼び出すことができます.
Reference
この問題について([TIL] JavaScript: JSON), 我々は、より多くの情報をここで見つけました https://velog.io/@jinjinhyojin/TIL-JavaScript-JSONテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol