[CS] JSON / XML

최지나·2023년 10월 14일
3

CS

목록 보기
2/55
post-thumbnail

JSON (JavaScript Object Notation)

정의

  • JavaScript 객체 문법을 사용하여 구조화된 데이터를 교환하는 형식

특징

  • JavaScript 객체 문법: Key-Value 쌍으로 이루어짐, Key 중복 불가, 배열([])은 여러 JSON을 그룹화
  • 데이터 교환 형식: 서로 다른 시스템 간 데이터 교환에 사용, 웹 어플리케이션에서 서버로 데이터 전송에 자주 활용
  • 독립적 사용: JavaScript, Python 등 다양한 언어에서 객체, 해시테이블, 딕셔너리 등으로 변환되어 독립적으로 사용
  • 단순 배열, 문자열 표현 가능: [1,12,34], "zinna"
  • JSON의 타입: 수, 문자열, Boolean, 배열, 객체, null. JavaScript의 object와 유사하지만 undefined나 method는 value로 가질 수 없음
  • ⭐JSON 직렬화 및 역직렬화: 데이터를 JSON 형태로 변환(직렬화)하거나 JSON을 객체로 변환(역직렬화)하는 작업.
    • JSON 역직렬화 예시
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDeserializationExample {
    public static void main(String[] args) throws Exception {
        // JSON
        String jsonData = "{\"name\":\"John\",\"age\":30}";

        // Jackson ObjectMapper
        ObjectMapper objectMapper = new ObjectMapper();

        // JSON 역직렬화 ( JSON -> Java 객체)
        Person person = objectMapper.readValue(jsonData, Person.class);
    }
}

활용

  • 서로 다른 시스템 간 데이터 교환, API의 반환 형식, 설정 파일 (예: package.json)

XML (Extensible Markup Language)

정의

  • 마크업 형태를 사용하여 데이터를 교환하는 형식

특징

  • 마크업 형태: 태그 등을 이용하여 문서나 데이터의 구조를 나타냄
  • 구성: 프롤로그, 루트요소, 하위요소로 구성. 대소문자 구분이 엄격
  • ⭐HTML과의 차이: HTML은 미리 정해진 태그 사용, 대소문자 구분 없음.데이터 표시가 목적 XML은 사용자가 고유한 태그 정의 가능, 대소문자 구분 엄격, 데이터 저장 및 전송이 목적
  • ⭐JSON과의 차이: JSON에 비해 무겁고, JSON object로 변환하기 위해 노력이 필요. 역직렬화 시 외부 라이브러리 필요

활용

  • sitemap.xml(검색 엔진 최적화), 데이터 교환 형식

요약

JSON은 JavaScript 객체 문법을 기반으로 데이터를 교환하는 간결하고 가벼운 형식. 주로 웹에서 API 통신에 사용.
XML은 마크업 형태로 데이터를 교환하며 HTML과 비슷한 구조를 가지고 있음. 주로 sitemap.xml과 같은 곳에서 사용되며 데이터가 복잡한 경우에 활용.

업로드중..


REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글