[jquery] 모두가 jQuery를 위해 JSON보다 XML을 선택하는 이유는 무엇입니까? [닫은]

XML이 이식성이 뛰어나고 미니 데이터베이스로 사용될 수 있다고 생각했습니다. 나는 모든 곳에서 XML이 사용되는 것을 보았다. 심지어 대기업이 JSON으로 전환하는 것을 보았습니다 . Microsoft조차도 JSON에 대한 지원을 통합했습니다. JSON에 대한 과대 광고는 무엇입니까?



답변

기본적으로 JSON은 JavaScript에 의해 기본적으로 인식되므로 두 가지 기본 구조에만 의존하기 때문에 실제로 가볍고, 최소이며, 이식성이 뛰어납니다.

  • 이름 / 값 쌍의 모음입니다. 다양한 언어에서 이것은 객체, 레코드, 구조체, 사전, 해시 테이블, 키 목록 또는 연관 배열로 실현됩니다.
  • 정렬 된 값 목록. 대부분의 언어에서 이는 배열, 벡터, 목록 또는 시퀀스로 실현됩니다.

답변

다른 네임 스페이스 스키마를 혼합하기 시작할 때까지 XML은 실제로 빛나기 시작하지 않습니다. 그러면 JSON이 다운되기 시작하지만 데이터의 직렬화 형식 만 있으면 JSON이 더 작고 가벼우 며 사람이 읽을 수 있으며 일반적으로 XML보다 빠릅니다.


답변

XML에 비해 JSON의 큰 이점은 데이터 형식을 지정하는 방법을 결정할 필요가 없다는 것입니다. 일부에서 보았 듯이 XML에서 간단한 데이터 구조를 요소, 속성 값 등으로 수행하는 방법에는 여러 가지가 있습니다. 그런 다음 문서화하거나 XML 스키마를 작성하거나 NG 또는 다른 쓰레기를 작성해야합니다. 엉망.

XML의 장점은 있지만 기본 데이터 교환의 경우 JSON이 훨씬 더 간결하고 직접적입니다. Python 개발자는 JSON과 Python의 단순 데이터 유형간에 임피던스 불일치가 없습니다. 따라서 특정 스키 리조트의 눈 상태에 대해 묻는 AJAX 쿼리에 대한 서버 측 처리기를 작성하는 경우 다음과 같은 사전을 작성합니다.

conditions = {
    'new_snow_24': 5.0,
    'new_snow_48': 8.5,
    'base_depth': 88.0,
    'comments': 'Deep and steep!',
    'chains_required': True,
}
return simplejson.dumps(conditions)   # Encode and dump `conditions` as a JSON string

JSON을 통해 번역 할 때 (Python의 경우 ‘simplejson’과 같은 라이브러리 사용) 결과 JSON 구조는 거의 동일하게 보입니다 (JSON을 제외하면 부울은 소문자 임).

이 구조를 디코딩하려면 기본 iPhone 앱 또는 C # 또는 Python 클라이언트의 경우 Javascript 또는 Objective-C에 관계없이 JSON 파서 만 필요합니다. float는 float, string은 string, boolean은 boolean으로 해석됩니다. 파이썬에서 ‘simplejson’라이브러리를 사용하면 simplejson.loads(some_json_string)명령문에서 위의 예제에서 만든 것처럼 전체 데이터 구조를 다시 얻을 수 있습니다.

XML을 작성한 경우 요소 또는 속성을 수행할지 여부를 결정해야합니다. 다음 두 가지 모두 유효합니다.

<conditions>
    <new-snow-24>5</new-snow-24>
    <new-snow-48>8.5</new-snow-48>
    <chains-required>yes</chains-required>
    <comments>deep and steep!</comments>
</conditions>

<conditions newSnow24="5" newSnow48="8.5" chainsRequired="yes">
   <comments>deep and steep!</comments>
</conditions>

따라서 클라이언트에 보낼 데이터에 대해 생각해야 할뿐만 아니라 형식을 지정하는 방법에 대해서도 생각해야합니다. XML은 규칙을 엄격하게 적용하여 일반 SGML보다 단순하지만 해당 데이터에 대해 생각하기에는 너무 많은 방법을 제공합니다. 그런 다음 그것을 생성해야합니다. 파이썬 사전 (또는 다른 간단한 데이터 구조)을 가져다가 “내 자신을 내 XML로 만들어라”고 말할 수는 없습니다. 나는 XML 문서를받을 수 없었고, 커스텀 파서를 작성하지 않거나 XML Schema / Relax NG의 추가 오버 헤드와 다른 고통없이 즉시 “객체와 데이터 구조로 들어 가라”고 말할 수 없었다.

단점은 특히 빠른 상호 교환을 위해 JSON으로 데이터를 인코딩하고 디코딩하는 것이 훨씬 쉽고 직접적이라는 것입니다. JavaScript / JSON에 내장 된 기본 데이터 유형 (목록, 사전 등)이 Python, Perl, Ruby 등에서 동일하거나 유사한 데이터 유형에 직접 매핑되므로 동적 언어 배경에서 온 사람들에게 더 적용될 수 있습니다.


답변

JSON의 성능은 대부분의 사용 사례에서 XML과 크게 다르지 않으며 JSON은 깊게 중첩 된 구조에 적합하지 않으며 읽을 수 없습니다 …]]]}]]


답변

XML에 비해 가볍습니다. 확장이 필요한 경우 대역폭 요구 사항을 줄이십시오!

JSON 비교

 [
      {
           color: "red",
           value: "#f00"
      },
      {
           color: "green",
           value: "#0f0"
      },
      {
           color: "blue",
           value: "#00f"
      },
      {
           color: "cyan",
           value: "#0ff"
      },
      {
           color: "magenta",
           value: "#f0f"
      },
      {
           color: "yellow",
           value: "#ff0"
      },
      {
           color: "black",
           value: "#000"
      }
 ]

XML로 :

 <colors>
      <color >
           <name>red</name>
           <value>#f00</value>
      </color>
      <color >
           <name>green</name>
           <value>#0f0</value>
      </color>
      <color >
           <name>blue</name>
           <value>#00f</value>
      </color>
      <color >
           <name>cyan</name>
           <value>#0ff</value>
      </color>
      <color >
           <name>magenta</name>
           <value>#f0f</value>
      </color>
      <color >
           <name>yellow</name>
           <value>#ff0</value>
      </color>
      <color >
           <name>black</name>
           <value>#000</value>
      </color>
 </colors>


답변

내 개인적인 경험에서 나온 일화 :

먼저 XML로 데이터를 사용하여 작은 Javascript 디렉토리를 작성한 다음 JSON을 사용하도록 조정하여 나란히 실행하고 Firebug와 속도를 비교할 수 있습니다. JSON은 약 3 배 더 빨랐습니다 (모든 데이터를 표시하기 위해 350-400ms 대 1200-1300ms). 또한 다른 사람들이 지적했듯이 JSON은 눈에 훨씬 더 쉽고 파일 크기가 작기 때문에 파일 크기가 25 % 작습니다.


답변

 <colors>
      <color name='red'     value='#f00'/>
      <color name='green'   value='#0f0'/>
      <color name='blue'    value='#00f'/>
      <color name='cyan'    value='#0ff'/>
      <color name='magenta' value='#f0f'/>
      <color name='yellow'  value='#ff0'/>
      <color name='black'   value='#000'/>
 </colors>

속성이 있으면 XML이 좋습니다. 그러나 어떤 이유로 집에서 만든 XML은 일반적으로 100 % 요소로 구성되며 추악합니다.