카테고리 없음

Xml vs Json 에 관하여.

낙산암 2021. 12. 29. 21:38

XML 이란?

 

XML은 EXtensible Markup Language의 약자이며, 1998년에 W3C 표준 권고안에 포함되었습니다.

 

XML은 HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)입니다.

이 언어는 사람과 기계가 동시에 읽기 편한 구조로 되어 있습니다.

 

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<!DOCTYPE food [

<!ELEMENT food (name,type,cost)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT type (#PCDATA)>

<!ELEMENT cost (#PCDATA)>

]>

<food>

    <name>상추</name>

    <type>야채</type>

    <cost>2000</cost>

</food>

 

위의 예제에서 !DOCTYPE food 는 이 문서의 루트(root) 요소가 <food>요소라는 사실을 명시합니다.

!ELEMENT food는 <food>요소가 <name>, <type>, <cost>의 세 요소를 반드시 포함해야 한다는 사실을 명시합니다.

!ELEMENT name은 <name>요소가 #PCDATA 타입의 요소라는 사실을 명시합니다.

!ELEMENT type은 <type>요소가 #PCDATA 타입의 요소라는 사실을 명시합니다.

!ELEMENT cost은 <cost>요소가 #PCDATA 타입의 요소라는 사실을 명시합니다.

 

 

data.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE food SYSTEM "food.dtd">

<food>

    <name>상추</name>

    <type>야채</type>

    <cost>2000</cost>

</food>

 

food.dtd

<!ELEMENT food (name,type,cost)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT type (#PCDATA)>

<!ELEMENT cost (#PCDATA)>

 

XML vs JSON

데이터를 나타낼 수 있는 방식은 여러가지가 있지만, 대표적인 것이 XML이고, 이후 가장 많이 사용되는 것이 아마도 JSON일 것이다.

 

XML

  • 데이터 값 양쪽으로 태그가 있다.
    (HTML을 근본으로 했기에 태그라는 것이 없을 수가 없는데, 그 태그를 줄인다 해도 최소한 표현하려면 양쪽에 몇글자씩이 있어야 한다.)

JSON

  • 태그로 표현하기 보다는 중괄호({}) 같은 형식으로 하고, 값을 ','로 나열하기에 그 표현이 간단하다.

JSON 문법

{
  "employees": [
    {
      "name": "Surim",
      "lastName": "Son"
    },
    {
      "name": "Someone",
      "lastName": "Huh"
    },
    {
      "name": "Someone else",
      "lastName": "Kim"
    } 
  ]
}
  • JSON 형식은 자바스크립트 객체와 마찬가지로 key / value가 존재할 수 있으며 key값이나 문자열은 항상 쌍따옴표를 이용하여 표기해야한다.
  • 객체, 배열 등의 표기를 사용할 수 있다.
  • 일반 자바스크립트의 객체처럼 원하는 만큼 중첩시켜서 사용할 수도 있다.
  • JSON형식에서는 null, number, string, array, object, boolean을 사용할 수 있다.

 

JSON 형식 텍스트를 JavaScript Object로 변환하기

var jsonText = '{ "name": "Someone else", "lastName": "Kim" }';  // JSON 형식의 문자열
var realObject = JSON.parse(jsonText);
var jsonText2 = JSON.stringify(realObject);

console.log(realObject);
console.log(jsonText2);
  • JSON.parse( JSON으로 변환할 문자열 ) : JSON 형식의 텍스트를 자바스크립트 객체로 변환한다.
  • JSON.stringify( JSON 문자열로 변환할 값 ) : 자바스크립트 객체를 JSON 텍스트로 변환한다.