2009-07-12 5 views
29

PHP로 데이터를 거의 조작하지 않고 Json과 XML 중에서 선택할 수 있습니다. 그러나 나는 무엇을 선택해야할지 모르겠다. 나는 그 중 한 명과 함께 일한 적이 없다. 그래서 나는 가장 쉬운 것을 원한다.더 나은 점이 있나요? Json 또는 XML (PHP)

또한 구문 분석 (XML 또는 Json)을 쉽게 할 수있는 좋은 클래스가 있는지 궁금합니다.

주로 속도와 크기보다는 사용의 편의성에 중점을 둡니다. 당신이 XML을 사용 SimpleXML을 선택하면

+0

클라이언트의 종류. 그렇지 않은 경우 (예 : "일반"PHP 앱과 같이 HTML을 제품으로 사용하려는 경우)이 중 하나를 사용하지 않을 것입니다. 아니면 서버 측에서 직렬화하는 것에 대해 이야기하고 있습니까 (예 : 파일) ... ??? –

+0

필자는 PHP로 데이터를 조작 할 것이라고 말했고, 왜 모든 것이 혼란스럽고 클라이언트 측에 관해서 이야기하는지 모르겠습니다. 서버는 일부 데이터 (어딘가에서 다운로드)를 가지고 있으며 PHP를 사용하여 조작합니다. 데이터 크기는 작지만 구조가 매우 복잡하므로 조작하기가 가장 쉽습니다. (Json 또는 XML ??) –

+1

JSON과 XML은 PHP 프로세서에서 데이터를 가져 오는 데 사용할 형식입니다. PHP에서는 직선의 PHP 객체를 사용합니다. 데이터 제공 업체는 이러한 두 가지 형식 중 하나를 선택해야합니까? 그렇지 않으면 아마도 PHP 객체 직렬화 또는 데이터베이스를 사용할 것입니다. –

답변

37

json.org은 JSON 파싱 간단하게 라이브러리를 사용합니다. SimpleXML은 XML을 PHP에서 간단하게 만듭니다.

어느 것을 선택할 때, 이는 실제로 응용 프로그램에 따라 다릅니다. 클라이언트 측에서 처리하기 위해 JavaScript에 데이터를 전달하는 경우 JSON을 권장합니다. IMO, XML은 시스템 간의 데이터 교환에 더 효과적입니다. 왜냐하면 XML은 매우 잘 이해되고 사람이 읽을 수 있기 때문입니다 (더 쉽게 해석 할 수 있기 때문에). 닫는 태그가 없으므로 JSON은 전선보다 작습니다.

+2

내가 말한 것과 같습니다. +1에 대한 "정말 의존" –

+7

나는 그것이 "다릅니다"동의하지만, XML은 json에 비해 모든 가장자리 wrt 가독성이 있다고 생각하지 않는다; 그들은 거의 비슷합니다. JSON 크기 이점은 있지만 일반적으로 그다지 중요하지 않습니다. 크기가 중요하면 gzipping 데이터가 크기가 동일합니다 (동일한 정보 내용 등). 개인적으로 저는 도구 (사용 용이성)를 기반으로 선택 하겠지만 wrt PHP에 대해서는 언급 할 수 없습니다. 자바에는 두 가지 모두를위한 많은 도구가 있습니다. PHP에 대해서도 마찬가지입니다. – StaxMan

+0

읽어보기 : http://www.edwardawebb.com/tips/xml-json 네트워킹에 대한 자세한 내용이지만 부분적으로 파싱에도 적용됩니다. –

1

, 매우 간단

8

JSON 구문 분석 및 생성은 기본적으로 PHP에 포함되어 있습니다 : 당신이 중 하나를 사용하지 않는 한 경우 http://www.php.net/json

1

은 다음 JSON에 대한 이동합니다. 지금까지의 답변은 두 가지 모두에 많은 도움이된다는 점에서 정확합니다. JSON은 XML보다 덜 부 풀릴 수있는 이점이 있으며 클라이언트에서 자바 스크립트로 쉽게 변환 될 수 있습니다.

0

json.org 페이지 하단에 여러 가지 (일방적 인) JSON 및 XML 기사가 있습니다. .

여기에 one입니다.

일반적으로 JSON을 선호합니다. 일반적으로 표현할 데이터에 적합합니다. 작업 라인에서 꼭짓점, 메쉬 등이 될 수 있습니다. 데이터에 따라 XML은 훌륭한 형식 일 수 있습니다.

1

내가 때문에 PHP와 JSON을 사용하는 방법을 간단하게는 다음과 같습니다 고려해야 할

$arr = array('foo' => 'bar', 'animals' => array('cat', 'dog')); // Create any array. 
$json = json_encode($arr); // Converts any array to JSON. 
+1

배열을 XML로 변환 할 수 없습니다 ?? –

+3

xml_encode ($ var, false, "foo"); 여기서 $ var는 배열이고, id refs를 표시하지 않으려면 false이고 "foo"는 XML 루트의 이름입니다. http://www.projectzero.org/sMash/1.0.x/docs/apidocs/PHP/xapidoc/XMLExtension/xml_encode.html –

3

한 가지 이상 다운로드에, XML 및 JSON (XML은 더 큰 것) 사이의 크기의 차이가 아닌,이다 HTTP를 통해 GZIP 압축을 사용하기 때문에 정말 흥미 롭습니다.

JavaScript로 작업하고 다른 유형의 클라이언트 (다른 ​​웹 사이트, Flash/Flex 클라이언트 등)를 사용하지 않는다면 JSON은 훌륭하고 아마도 덜 고통 스러울 것입니다. 반면 XML을 사용하면 XML을 통해 작업해야하는 시간을 절약 할 수 있습니다.

어쨌든 좋은 일은 Google 직원이 Gmail 또는 해당 앱의 LiveHTTPHeaders를 사용하여 수행중인 작업을 확인하는 것입니다. 나는 이것이 XML이고 JSON이 아니라고 확신하지만, 당신은 그것에 대해 나를 확인할 수있다. 모든 경우에 Google이하는 일은 "생각하지 않는 것"으로 간주 될 수 있지만 일반적으로 나보다 똑똑하고 생각할 시간이 더 많습니다.

+0

크기 차이 ... 정말 흥미롭지 않습니다. << 처리 오버 헤드입니다. 큰 파일 (xGb)의 경우 문제가 될 수도 있습니다. "계약에 의한 디자인"Google XML 앱을 많이 보았습니다. 나는 XML을 선호한다. –

+0

흠 ... 그래, 만약 우리가 거대한 파일에 대해 이야기하고 있다면, 세상은 명백하게 경험적이된다. 당신은 테스트하고 벤치 마크해야하고 단서를 얻어야한다고 생각한다. JSON은 XML에서 데마 샬링하는 것보다 분명 빠릅니다 ... 그렇지 않습니까? –

+1

""Google이하는 일을 "생각하지 않는다"고 생각할 수도 있지만 일반적으로 나보다 똑똑하고 생각할 시간이 더 많습니다 :) "" 사실이 아닙니다. 의존 할 것입니다. 많은 사람들은 "BEST"를 선택하지 않고 "BEST ONE FOR GMAIL"을 선택합니다. –

3

에 달려 있습니다.

예 : 응용 프로그램을 큰 컨텍스트 (EAI)에 배치하려는 경우 XML (어쩌면 Webservices & WSDL)을 사용해야합니다.

예제 2 : 간단한 사용자 인터페이스를 원하면 javascript와 ajax를 기반으로 JSON을 고려해야합니다.

JSON은 자바 스크립트로 작업 할 때 가장 유용합니다. 대부분의 경우 XML 라이브러리는 사용하기 쉽기 때문에 사용 편의성은 거의 동일합니다.

4

JSON은 프로그래밍 언어에서 알려진 구조로지도/사전 (JSON에서는 '객체'라고 함), 배열 및 리터럴을 표시합니다. JSON은 이러한 기본 구문을 계층 구조로 만듭니다.

XML도 계층 구조이지만 요소 (시작/끝 태그 포함), 요소 내의 속성 및 텍스트 내용의 세 부분으로 구성됩니다. 요소 및 텍스트 내용을 혼합 할 수 있으므로 문서를 마크 업하는 데 적합합니다. JSON은 그다지 좋지 않습니다.

XML에는 XML 문서가 유효한지 확인하는 다양한 스키마, 변환 언어, 문서 탐색을위한 XPath 등이 포함되어 있습니다. JSON도이 영역에서 부족합니다.

XML은 JSON보다 훨씬 복잡합니다. 자신 만의 JSON 파서를 작성하는 것은 쉽고 재미 있지만 XML 파서 작성은 huge undertaking입니다 (XML을 처음 사용하는 사람에게는 적합하지 않음). Javascript에서 JSON은 텍스트를 평가하여 구문 분석 될 수 있습니다 (이것은 매우 불안정합니다).

두 시스템간에 데이터를 전송해야하는 경우 JSON을 사용해도됩니다. XML (엔티티, 다른 문서, 스키마, 암시 적 속성 값 등의 자동 포함)에서보다 고급 속성을 사용하거나 내용과 마크 업을 혼합하려면 XML이 더 잘 작동합니다.

+0

클라이언트 (기본적으로 모든 클라이언트)와 서버 (PHP)에서 XML 조작을위한 libs가 있습니까? –

+1

Daniel, 확실합니다. 제 대답은 라이브러리보다 "JSON 대 XML"에 더 중점을 둡니다. 저는 보통 Java로 작업하며 Java 세계에서 XML을위한 라이브러리가 수없이 많습니다. PHP에서 필자는 (단순한) 요구 사항에 대해 SimpleXML을 사용했으며, 이제 막 작동했습니다. –

+0

Peter, 제 4 단락이 당신의 대답에 어떻게 작용했는지 묻고있는 것 같습니다. 나는 몇 번이나 당신의 대답을 읽은 이후로 upvote 할 것이고, 나는 당신이 실제로 중요한 것을 지적했다는 것을 깨달았다. XML은 전 세계를 가지고있다. (당신이 말하는 생태계) : JSON은 전혀없는 것처럼 보인다. 그 질문자가 신경 안써 ... :) –

0

가장 쉬운 방법은 XML입니다. 주된 이유는 파싱이 아닙니다 (XML 및 JSON에 대해 매우 유용한 라이브러리가 있으므로 다른 게시물을 참조하십시오.) 이해 가능성 :

JSON은 많은 괄호가있는 경우 XML 데이터에서 오류가 더 빨리 나타날 것입니다.

XML schema을 만들면 (선택 사항이지만) 데이터를 자동으로 쉽게 확인할 수 있습니다. 이후에 많은 시간을 절약 할 수 있습니다!

7

나는 다음과 같은 StackOverflow의 항목이 가장 귀하의 질문에 대답 느낌 :

으로하는 하나 가장 쉬운 방법입니다?
jQuery는 JavaScript 객체를 JSON 객체로 쉽게 직렬화합니다.

하지만 아직 확실하지 않은 경우 ...여기

몇 가지 다른 기사입니다 : 우리는 일부 JSON 또는 XML을 이야기 할 모든 당신이 거라고 가정하고 질문에 대답했습니다

관련 문제