대표적으로 서버와의 통신에서 데이터를 주고 받는 하나의 포맷으로 사용된다.
json 확장자를 가지고 있는 하나의 파일이 곧 하나의 데이터이다. (두 개의 데이터를 입력할 수 없다.)
📌 JSON 데이터 만들기
{
"string": "SEUL",
"number": 123,
"boolean": true,
"null": null,
"object": {},
"array": []
// "undefined": undefined // 1)
}
myData.json
이름의 JSON 파일 만들기.📌 JSON 데이터 가져오기
import myData from "./myData.json"; // 1)
// JSON 가져오기
console.log(myData); // 객체 데이터가 잘 출력
❗️주의할 점
→ json 이라는 확장자를 가지고 있는 파일은 사실 하나의 문자 데이터이다.
→ 어디까지나 json은 기본적인 포맷의 규칙이 있기 때문에 그것이 자동으로 변환되어서 실제 객체데이터 처럼 출력이 될 수 있는 것으로, 정확하게는 json이라는 파일은 하나의 문자 데이터 이다.
→ 다만 import 로 가져와서 출력해보면 마치 객체데이터처럼 출력이 되는 것을 볼 수 있다.🧐
📌 대문자 JSON 는 하나의 전역객체이다.
JSON은 사용되는 용도가 명확하므로 최대한 용량을 경량화 시키기 위한 구조이고, 단순하게 하나의 메모리만 참조할 수 있는 큰 덩어리에 문자데이터로써 관리가 된다.
우리가 쓸 수 있는 JavaScript데이터처럼 변경을 하려면 JSON.parse()
메서드를 사용한다.
다시 JSON의 형태로 만들기 위해서는 JSON.stringify()
메서드를 통해서 문자데이터화 시켜준다.
JSON.stringify()
✍️ JSON.stringify( JSON 문자열로 변환할 값 )
: 자바스크립트 객체를 JSON 텍스트로 변환한다.
const user = {
string: "SEUL",
number: 123,
boolean: true,
null: null,
object: {},
array: [],
};
const str = JSON.stringify(user); // 여러 데이터 포맷들을 인수로 넣을 수 있다
console.log(str);
console.log(typeof str);
JSON.parse()
✍️ JSON.parse( JSON으로 변환할 문자열 )
: JSON 형식의 텍스트를 자바스크립트 객체로 변환한다.
const user = {
string: "SEUL",
number: 123,
boolean: true,
null: null,
object: {},
array: [],
};
const parsedStr = JSON.parse(str);
console.log(parsedStr);
console.log(typeof parsedStr);
Local Storage
와 Session Storage
를 볼 수 있다.JSON.stringify
를 통해서 문자데이터화 시킨다.key
데이터value
데이터localStorage.setItem("user", JSON.stringify(user));
getItem
key
값만 알면 되므로 하나만 적는다.console.log(localStorage.getItem("user")); // 1)
console.log(JSON.parse(localStorage.getItem("user"))); // 2)
JSON.parse()
메서드를 사용한다.localStorage.removeItem("user");
localStorage.clear();
const str = localStorage.getItem("user");
const parsedStr = JSON.parse(str);
console.log("str:", str);
console.log("parsedStr", parsedStr);
parsedStr.age = 20;
console.log("modifiedParsedStr", parsedStr);
localStorage.setItem("user", parsedStr); // 1)
localStorage.setItem("user", JSON.stringify(parsedStr)); // 2)
console.log(localStorage.getItem("user"));
key
의 이름으로 덮어쓰기 해준다.JSON.stringify()
를 통해서 다시 잘 갱신한다.