>  기사  >  백엔드 개발  >  json 데이터 형식과 xml 데이터 형식의 차이점과 사용법에 대한 자세한 소개

json 데이터 형식과 xml 데이터 형식의 차이점과 사용법에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-18 17:19:511796검색

JSON(JavaScript 객체 표기법)은 가벼운 데이터 교환 형식입니다. 사람이 읽고 쓰기 쉽고, 기계가 구문 분석하고 생성하기도 쉽습니다. 이는 JavaScript(표준 ECMA-262 3판 - 1999년 12월)의 하위 집합을 기반으로 합니다. JSON은 완전히 언어 독립적인 텍스트 형식을 사용하지만 C 언어 계열(C, C++, C#, Java, JavaScript, Perl, Python 등 포함)과 유사한 규칙도 사용합니다. ) . 이러한 속성은 JSON을 이상적인 데이터 교환 언어로 만듭니다.

JSON과 XML
◆가독성
JSON과 XML의 가독성은 한쪽은 간단한 구문이고 다른 쪽은 표준화된 태그라는 점에서 비슷합니다. 승자에게 말하기가 어렵습니다.
◆확장성
XML은 기본적으로 확장성이 매우 뛰어나며 JSON이 확장할 수 있지만 JSON이 확장할 수 있는 것은 없습니다. 그러나 JSON은 Javascript에 있으며 Javascript 복합 객체 를 저장할 수 있으며 이는 xml에 비해 비교할 수 없는 장점이 있습니다.
◆코딩 난이도
XML에는 Dom4j, JDom 등 다양한 코딩 도구가 있으며 JSON도 도구를 제공합니다. 도구가 없으면 숙련된 개발자라면 원하는 XML 문서와 JSON문자열을 빠르게 작성할 수 있다고 생각합니다. 그러나 XML 문서에는 더 많은 구조 문자가 필요합니다.
◆디코딩 난이도
XML을 구문 분석하는 방법에는 두 가지가 있습니다.
하나는 문서 모델 을 통해 구문 분석하는 것입니다. 즉, 상위 태그 를 통해 를 색인화하는 것입니다. 태그 세트를 생성합니다.
예: xmlData.getElementsByTagName_r("tagName"). 그러나 이는 문서 구조가 미리 알려져 있고 보편적으로 캡슐화할 수 없는 경우에 사용해야 합니다.
또 다른 방법은 노드(document 및 childNodes)를 순회하는 것입니다. 이는 재귀를 통해 달성할 수 있지만 구문 분석된 데이터는 여전히 다른 형식이며 기존 요구 사항을 충족하지 못하는 경우가 많습니다.
이렇게 확장 가능한 구조화된 데이터를 구문 분석하는 것은 매우 어려울 것입니다.
JSON도 마찬가지입니다. JSON 구조를 미리 알고 있다면 데이터 전송에 JSON을 사용하는 것은 매우 실용적이고 아름답고 읽기 쉬운 코드를 작성할 수 있다는 것입니다. 순수 프론트 엔드 개발자라면 JSON을 매우 좋아할 것입니다. 그러나 애플리케이션 개발자라면 XML이 데이터 전송에 사용되는 실제 구조화된 마크업 언어이기 때문에 별로 좋아하지 않을 것입니다.
그리고 JSON의 구조를 모르고 JSON을 파싱한다면 악몽이 될 것입니다. 시간이 많이 걸리고 노동 집약적일 뿐만 아니라 코드도 중복되고 길어지고 결과도 만족스럽지 못할 것입니다. 그러나 이는 JSON을 선택하는 많은 프런트엔드 개발자에게 영향을 미치지 않습니다. json.js의 toJSONString()은 JSON의 문자열 구조를 볼 수 있기 때문입니다. 물론 이 문자열을 사용하지 않는 것은 여전히 ​​악몽입니다. JSON을 자주 사용하는 사람들은 이 문자열을 보고 나면 JSON의 구조를 명확하게 이해하고 JSON을 조작하기가 더 쉬워질 것입니다.
위는 Javascript에서 데이터 전송을 위해 xml과 JSON만을 파싱한 것입니다. Javascript 분야에서는 결국 JSON이 홈 필드이고 그 장점은 물론 xml보다 훨씬 뛰어납니다. Javascript 복합 객체가 JSON에 저장되어 있고 그 구조를 알 수 없다면 많은 프로그래머도 JSON을 구문 분석할 때 울 것이라고 생각합니다.
◆비교 예
XML과 JSON 모두 구조화된 방법을 사용하여 데이터를 표시합니다. 아래에서 간단한 비교를 해보겠습니다.
XML을 사용하여 중국의 일부 지방과 도시를 다음과 같이 표현합니다.

<?xml version="1.0" encoding="utf-8"?>
    <country>
    <name>中国</name>
    <province>
    <name>黑龙江</name>
    <citys>
    <city>哈尔滨</city>
    <city>大庆</city>
    </citys>
    </province>
    <province>
    <name>广东</name>
    <citys>
    <city>广州</city>
    <city>深圳</city>
    <city>珠海</city>
    </citys>
    </province>
    <province>
    <name>台湾</name>
    <citys>
    <city>台北</city>
    <city>高雄</city>
    </citys>
    </province>
    <province>
    <name>新疆</name>
    <citys>
    <city>乌鲁木齐</city>
    </citys>
    </province>
    </country>

    用JSON表示如下:
    {
    name:"中国",
    province:[
    {
    name:"黑龙江",
    citys:{
    city:["哈尔滨","大庆"]
    }
    },
    {
    name:"广东",
    citys:{
    city:["广州","深圳","珠海"]
    }
    },
    {
    name:"台湾",
    citys:{
    city:["台北","高雄"]
    }
    },
    {
    name:"新疆",
    citys:{
    city:["乌鲁木齐"]
    }
    }
    ]
    }

Xml은 인코딩 가독성 측면에서 분명한 이점을 가지고 있습니다. 결국 인간의 언어는 이러한 설명 구조에 더 가깝습니다. json은 데이터 블록과 유사하게 읽혀 읽기가 더 혼란스럽습니다. 하지만 우리가 읽기 어려운 언어는 기계 판독에 적합하므로 json index .province[0].name을 통해 "Heilongjiang"의 값을 읽을 수 있습니다. 코딩의 손글씨 난이도에 관해서는 xml이 더 읽기 쉽고 쓰기도 더 쉽습니다. 그러나 작성된 JSON 문자는 분명히 훨씬 적습니다. 빈 탭과 줄바꿈을 제거하면 JSON은 유용한 데이터로 빽빽하게 들어찬 반면 xml에는 반복되는 마크업 문자가 많이 포함되어 있습니다.

위 내용은 json 데이터 형식과 xml 데이터 형식의 차이점과 사용법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.