문제

우리는 현재 새로운 것을 계획하고 있습니다 API 응용 프로그램과 대화에 대한 토론의 경우 교환에 사용해야합니다. 상대적인 장점에 대한 상당히 강렬한 토론이 있습니다. CSV, JSON 그리고 XML.

기본적으로 논쟁의 요점은 우리가 지원 해야하는지 여부입니다. CSV 재귀 부족으로 인해 전혀즉 문서가 있습니다 multiple authors 그리고 multiple references 필요합니다 multiple API calls 모든 것을 얻기 위해 information).

정보로 작업 할 때 경험 한 경험에서 Web APIs 그리고 우리와 함께 일하는 개발자들이 삶을 더 쉽게 만들기 위해 우리가 할 수있는 일 API.


우리의 결정 :

우리는 제공하기로 결정했습니다 XML 그리고 JSON 재귀의 어려움으로 인해 CSV 단일 논리적 작업을 여러 번 호출해야합니다. JSON 파서가 없습니다 Qt 그리고 Protocol Buffers A가없는 것 같습니다 non-alpha PHP 구현이므로 순간에도 나가지 만 결국 지원 될 것입니다.

도움이 되었습니까?

해결책

CSV가 바로 나옵니다. JSON은 XML보다 더 컴팩트 한 객체 표기법이므로 높은 볼륨을 찾고 있다면 이점이 있습니다. XML은 더 넓은 시장 침투를 보유하고 있으며 (이 문구를 좋아합니다) 모든 프로그래밍 언어와 핵심 프레임 워크에서 지원합니다. JSON이 거기에 도착합니다 (아직 없다면).

개인적으로, 나는 괄호를 좋아합니다. 더 많은 Devs가 JSON보다 XML 데이터로 작업하는 데 편안합니다.

다른 팁

장점 :

  • XML- 많은 라이브러리, 개발자가 익숙합니다. XSLT는 클라이언트와 서버 (XSD, DTD), 계층 적 데이터에 의해 Easiily 검증 될 수 있습니다.
  • JSON- 클라이언트 측, 컴팩트 한 표기법, 계층 적 데이터에서 쉽게 해석
  • CSV- Excel에서 열립니다 (?)

단점 :

  • XML- 부풀어 오르고 JSON보다 JavaScript로 해석하기가 더 어렵습니다.
  • JSON- 부적절하게 사용하는 경우 보안 구멍 (Eval을 사용하지 않음)을 초래할 수있는 경우 모든 언어에 해석 할 라이브러리가있는 것은 아닙니다.
  • CSV- 계층 적 데이터를 지원하지 않습니다. 당신은 유일하게 수행하는 유일한 데이터 일 것입니다. 실제로 대부분의 개발자가 유효한 CSV 파일을 구문 분석하는 것보다 훨씬 어렵습니다 (CSV 값은 따옴표 사이에있는 한 새 줄을 포함 할 수 있습니다).

위의 점을 감안할 때 CSV를 지원하는 것을 귀찮게하지 않을 것입니다. 클라이언트는 실제로 필요한 경우 XML 또는 JSON에서이를 생성 할 수 있습니다.

CSV는 복잡한 데이터 모델만큼 많은 문제가있어 사용하지 않을 것입니다. XML은 매우 유연하고 프로그램이 쉽습니다. 클라이언트는 XML 생성기 및 구문 분석에 문제가 없으며 SAX를 사용하여 샘플 파서를 제공 할 수도 있습니다.

Google의 네트워크 데이터 형식을 확인 했습니까? 프로토콜 버퍼라고합니다. 그러나 전체 HTTP 층도 건너 뛰기 때문에 휴식 서비스에 유용한 지 알 수 없습니다.

XML은 때때로 약간 헤비급 일 수 있습니다. 그러나 JSON은 매우 좋지만 언어 지원이 우수하며 JSON 데이터는 많은 PlayForms의 기본 객체로 직접 변환 될 수 있습니다.

JSON에 대한 경험이 없습니다. CSV는 귀하의 데이터가 매우 테이블이 많고 고르게 구성된 시점까지 작동합니다. XML은 특히 객체에 바인딩을 자동으로 생성하는 도구가없는 경우 매우 빨리 다루기 어려울 수 있습니다.

나는 이것을 시도하지 않았지만 Google의 프로토콜 버퍼 정말 좋아 보이고 간단한 형식으로 보이고 C ++, Java 및 Python에 자동 바인딩을 생성하고 생성 된 물체의 직렬화 및 사제화를 구현합니다.

그냥 Allain Lalonde가 이미 말한 내용, CSV의 추가 장점은 XML 또는 JSON보다 더 컴팩트 한 경향이 있다는 것입니다. 따라서 데이터가있는 경우 엄격하게 완전히 평평한 hyerarchy가있는 표는 CSV가 올바른 선택 일 수 있습니다. CSV의 첨가 적 단점은 다른 구분 제와 소수점 분리기를 사용할 수 있으며, 어떤 도구 (및 국가까지도 생성 된 도구)를 제시 할 수 있다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top