2024.1.16 TIL

Hyeongmin·2024년 1월 16일
0

 TIL (Today I Learned)

목록 보기
17/54

Today I Learned

오늘은 계속 사용하면서 정확히 알지않아 궁금했지만 찾아보지 못했던
JSON 에 대해 공부해 보았다.

JSON(JavaScript Object Notation) 은 텍스트 기반의 경량 데이터 교환 형식으로, 사람이 읽고 쓰기 쉬우면서 기계가 파싱하고 생성하기도 편리한 형식을 말한다. JSON은 다양한 프로그래밍 언어에서 지원되며, 주로 웹 개발에서 데이터 교환의 표준 형식으로 사용된다.

JSON의 구조:

JSONJavascript 객체 리터럴 문법을 따르는 문자열이다. JSON 안에는 마찬가지로 Javascript 의 기본 데이터 타입인 문자열, 숫자, 배열, 불리언 그리고 다른 객체를 포함할 수 있다.

JavaScript에서 JSON 사용하기:


1. JSON 문자열을 JavaScript 객체로 변환 (파싱):
JSON 형식의 문자열은 JSON.parse 함수를 사용하여 JavaScript 객체로 변환할 수 있다.

const jsonString = '{"name": "John", "age": 30}';
const person = JSON.parse(jsonString);

console.log(person.name); // 출력: John
console.log(person.age);  // 출력: 30

2. JavaScript 객체를 JSON 문자열로 변환 (직렬화):
JavaScript 객체를 JSON 형식의 문자열로 변환할 때는 JSON.stringify 함수를 사용한다.

const person = {
  name: "John",
  age: 30,
  city: "New York"
};

const jsonString = JSON.stringify(person);

console.log(jsonString);
// 출력: {"name":"John","age":30,"city":"New York"}

❗️주의사항

  • JSON 형식은 키와 문자열 값을 큰따옴표로 감싸야 한다. 다른 따옴표나 작은따옴표는 허용되지 않는다.
  • JSON 객체의 키-값 쌍은 순서를 보장하지 않는다. 따라서 순서가 중요한 경우에는 주의가 필요하다.
  • JSON에서는 숫자 타입이 정수와 실수를 구분하지 않는다. 모든 숫자는 부동 소수점 숫자로 취급된다.
  • JSON 데이터를 받을 때, 안전하지 않은 소스에서 오는 JSON 데이터를 JSON.parse()로 직접 처리하는 것은 보안 상 위험할 수 있다. 입력 데이터의 신뢰성을 확인하고 안전한 처리 방법을 사용해야 한다.
  • JSON.stringify()를 사용하여 JavaScript 객체를 JSON 문자열로 변환할 때, 순환 참조(객체 내에서 자기 자신을 참조하는 경우)가 있는 경우 에러가 발생할 수 있다.


    여기서 순환 참조는 객체 내에서 자기 자신을 참조하는 경우를 의미한다. 이것은 객체의 프로퍼티가 해당 객체 자체를 참조하는 경우를 말한다.

    const person = { name: "John" };
    person.self = person; // 순환 참조
    // 이렇게 순환 참조가 있는 경우 에러 발생
    const jsonString = JSON.stringify(person);

    위의 코드에서 person 객체는 self 프로퍼티를 통해 자기 자신을 참조하고 있다. 이것은 일반적인 객체 참조가 아니라 객체가 직접적으로 자기 자신을 참조하는 상황이다.


    ❕ 이런 JSON 은 가독성이 뛰어나며 언어 독립적이고 키-값 쌍 구조를 가지며 데이터 교환에 이용되는 경량의 데이터 형식으로, 다양한 프로그래밍 언어에서 지원되고 확장 가능하며 웹에서 표준으로 사용된다.



    평소에 궁금했지만 왜인지 알아보진 않았던 JSON 에 대해 공부해보면서 앞으로도 이런식으로 코딩을 하다가 궁금한게 생기면 바로바로 찾아보고 학습하는 습관을 가져야 겠다고 생각했다.

  • 0개의 댓글