티스토리 뷰
JavaScript에서 JSON은 JavaScript Object Notation의 약자로, 데이터를 구조화하고 교환하는 데 사용하는 경량 데이터 포맷입니다. JavaScript는 JSON 데이터를 다루기 위해 JSON 객체와 함께 여러 유용한 메서드를 제공합니다. 이러한 메서드는 JSON 데이터를 문자열로 변환하거나, 문자열을 객체로 변환하는 작업을 수행합니다.
주요 JSON 메서드
JavaScript에서 JSON 객체에는 다음 두 가지 주요 메서드가 있습니다.
1. JSON.stringify()
- 역할: JavaScript 객체를 JSON 문자열로 변환합니다.
- 사용 예시:
const obj = { name: "John", age: 30, city: "New York" }; const jsonString = JSON.stringify(obj); console.log(jsonString); // 출력: '{"name":"John","age":30,"city":"New York"}'
- 사용 이유:
- 서버로 데이터를 전송하기 위해 객체를 문자열로 변환할 때 사용.
- JSON 데이터로 저장하거나 로깅할 때 활용.
옵션 파라미터:
- replacer: 특정 속성만 포함하거나 필터링하는 함수.
- space: 가독성을 위해 JSON 문자열에 들여쓰기 추가.
const prettyJson = JSON.stringify(obj, null, 2);
console.log(prettyJson);
/* 출력:
{
"name": "John",
"age": 30,
"city": "New York"
}
*/
2. JSON.parse()
- 역할: JSON 문자열을 JavaScript 객체로 변환합니다.
- 사용 예시
const jsonString = '{"name":"John","age":30,"city":"New York"}'; const obj = JSON.parse(jsonString); console.log(obj); // 출력: { name: 'John', age: 30, city: 'New York' }
- 사용 이유:
- 서버에서 받은 JSON 데이터를 JavaScript에서 사용 가능한 객체로 변환할 때 사용.
- 파일이나 로컬 스토리지에서 불러온 JSON 데이터를 처리할 때 활용.
옵션 파라미터:
- reviver: 값을 변환하는 사용자 정의 함수.
const jsonString = '{"name":"John","age":30,"city":"New York"}';
const obj = JSON.parse(jsonString, (key, value) => {
if (key === "age") {
return value + 5; // age 값에 5 추가
}
return value;
});
console.log(obj);
// 출력: { name: 'John', age: 35, city: 'New York' }
JSON 메서드 활용 사례
1. 서버와 데이터 교환
- JSON은 클라이언트와 서버 간 데이터 교환에 자주 사용됩니다.
const data = { id: 1, title: "Hello World" };
// 데이터를 JSON 문자열로 변환하여 서버로 전송
fetch('https://api.example.com/data', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => console.log(result));
2. 로컬 스토리지 활용
- JSON 메서드는 브라우저의 로컬 스토리지에 데이터를 저장하거나 불러올 때 사용됩니다.
// 데이터 저장
const user = { name: "Jane", age: 25 };
localStorage.setItem('user', JSON.stringify(user));
// 데이터 불러오기
const storedUser = JSON.parse(localStorage.getItem('user'));
console.log(storedUser);
// 출력: { name: "Jane", age: 25 }
주의사항
- JSON.stringify에서 순환 참조 오류
- 객체가 자기 자신을 참조하는 경우, JSON.stringify는 오류를 발생시킵니다.
const obj = {}; obj.self = obj; JSON.stringify(obj); // TypeError: Converting circular structure to JSON
- JSON.parse 보안 문제
- 신뢰할 수 없는 JSON 문자열을 처리할 때는 주의해야 합니다. 악성 JSON 문자열은 코드 주입 공격으로 이어질 수 있습니다.
결론
JavaScript의 JSON 메서드는 **객체를 JSON 문자열로 변환(JSON.stringify)**하거나, **JSON 문자열을 객체로 변환(JSON.parse)**하는 간단하면서도 강력한 도구입니다. 서버와의 데이터 교환, 로컬 데이터 저장 등 다양한 상황에서 필수적으로 사용됩니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON
JSON - JavaScript | MDN
JSON 객체는 JavaScript Object Notation(JSON)을 분석하거나 값을 JSON으로 변환하는 메서드를 가지고 있습니다. JSON을 직접 호출하거나 인스턴스를 생성할 수 없으며, 두 개의 메서드를 제외하면 자신만의
developer.mozilla.org
'WEB > 기타' 카테고리의 다른 글
JavaScript-Equality-Table (0) | 2024.12.17 |
---|---|
[JavaScript] 수의 연산 Math (1) | 2024.12.17 |
챗GPT가 알려주는 AJAX (1) | 2024.12.15 |
챗GPT가 알려주는 JSON (1) | 2024.12.15 |
2025년 적용 SW기술자 평균임금 공표 (조사년도 2024년) (2) | 2024.12.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 와이파이신호 #와이파이 #와이파이신호세게
- lg그램pro #lg그램 #노트북 #노트북추천 #lg노트북
- 와이파이약할때
- 무료폰트 #무료웹폰트 #한수원한돋움 #한수원한울림 #한울림체 #한돋움체
- 자바스크립트countiue
- 광주분식 #광주분식맛집 #상추튀김 #상추튀김맛집 #광주상추튀김
- 파비콘 #파비콘 사이트에 적용
- 쇼팬하우어 #좋은책
- 자바스크립트정규표현식
- 증폭기 #아이피타임증폭기
- 와이파이증폭기추천 #와이파이설치
- 파비콘사이즈
- 좋은책 #밥프록터 #부의원리
- SQL명령어 #SQL
- jQuery #jQuery이미지슬라이드 #이미지슬라이드
- jdk #jre
- 정보처리기사 #정보처리기사요약 #정보처리기사요점정리
- sw기술자평균임금 #2025년 sw기술자 평균임금
- 좋은책
- 테스크탑무선랜카드 #무선랜카드 #아이피타이무선랜카드 #a3000mini #무선랜카드추천
- 썬크림 #닥터지썬크림 #내돈내산 #내돈내산썬크림 #썬크림추천 #spf50썬크림 #닥터지메디유브이울트라선
- echart
- 자바스크립트break
- css미디어쿼리 #미디어쿼리 #mediaquery
- ajax
- 바지락칼국수 #월곡동칼국수 #칼국수맛집
- 자바스크립트 #javascript #math
- 연명의료결정제도 #사전연명의료의향서 #사전연명의료의향서등록기관 #광주사전연명의료의향서
- iptime와이파이증폭기 #와이파이증폭기설치
- thymeleaf
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함