Что лучше: Json или XML [закрытый] (PHP)

Я сделал что-то вроде этого, создав запрос xml вручную и затем с помощью объекта webrequest отправить запрос:

string data = "the xml document to submit";
string url = "the webservice url";
string response = "the response from the server";

// build request objects to pass the data/xml to the server
byte[] buffer = Encoding.ASCII.GetBytes(data);
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = buffer.Length;
Stream post = request.GetRequestStream();

// post data and close connection
post.Write(buffer, 0, buffer.Length);
post.Close();

// build response object
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream responsedata = response.GetResponseStream();
StreamReader responsereader = new StreamReader(responsedata);
response = responsereader.ReadToEnd();

строковые переменные в начале кода - то, что Вы устанавливаете, тогда Вы получаете строковый ответ (надо надеяться...) с сервера.

31
задан Omar Abid 12 July 2009 в 20:19
поделиться

10 ответов

json.org упрощает синтаксический анализ JSON. SimpleXML делает XML простым для PHP.

Выбор зависит от вашего приложения. Если вы будете передавать данные в JavaScript для обработки на стороне клиента, я рекомендую JSON. IMO, XML лучше для обмена данными между системами, потому что он очень хорошо понимается и читается человеком (что упрощает интерпретацию для вас). JSON меньше по сети, так как нет закрывающих тегов.

40
ответ дан 27 November 2019 в 21:58
поделиться

Самый простой способ запустить - это XML. Основная причина этого не в синтаксическом анализе (поскольку есть очень хорошие библиотеки для XML и JSON, которые делают это за вас, см. Другие сообщения), а в понятности:

JSON работает с множеством разных круглых скобок, когда вы смотрите на ваш В данных XML вы, вероятно, быстрее обнаружите ошибки. (Предполагая, что вы знаете, например, HTML)

Также возможно (но необязательно) создать схему XML , которая упрощает автоматическую проверку ваших данных. Впоследствии это сэкономит вам много времени!

0
ответ дан 27 November 2019 в 21:58
поделиться

Разбор и генерация JSON изначально включены в php: http://www.php.net/json

8
ответ дан 27 November 2019 в 21:58
поделиться

JSON рассматривает ваши данные как структуры, известные из языков программирования: карты / словари (называемые «объектами» в JSON), массивы и литералы. JSON помещает эти базовые конструкции в иерархии.

XML также является иерархическим, но состоит из трех основных частей: элементов (с начальными / конечными тегами), атрибутов внутри элементов и текстового содержимого. Элементы и текстовое содержимое можно смешивать, поэтому он подходит для разметки документов. JSON не очень подходит для этого.

XML имеет огромную экосистему, построенную вокруг него с множеством готовых инструментов: различные схемы для проверки правильности ваших XML-документов, язык преобразования, XPath для навигации по вашему документу и т. Д. JSON отсутствует и в этой области тоже.

XML намного сложнее, чем JSON. Написать свой собственный анализатор JSON легко и весело, но написание синтаксического анализатора XML - это огромное дело (конечно, не для тех, кто плохо знаком с XML). В Javascript JSON можно проанализировать, оценив текст (хотя это довольно небезопасно).

Если вам нужно передавать данные между двумя системами, для этого подойдет JSON. Если вы хотите использовать более сложные свойства XML (сущности, автоматическое включение других документов, схему, неявные значения атрибутов и т. Д.) Или смешивать содержимое и разметку, XML подойдет вам лучше.

4
ответ дан 27 November 2019 в 21:58
поделиться

Следует учитывать, что, по крайней мере, при загрузке, разница в размере между XML и JSON (XML больше) не очень интересна, поскольку вы будете использовать сжатие GZIP поверх HTTP.

Если вы уверены, что будете работать с Javascript и у вас никогда не будет другого типа клиента (другого веб-сайта, клиента Flash / Flex и т. Д.), Тогда JSON великолепен и, возможно, менее безболезнен. С другой стороны, использование XML теперь экономит ваше время, если вам когда-нибудь понадобится работать с XML.

В любом случае, неплохо было бы проверить, что делают ребята из Google, используя LiveHTTPHeaders для Gmail или любого из их приложений. Я почти уверен, что это XML, а не JSON, но вы можете проверить меня в этом. Во всех случаях действия Google можно рассматривать как «бездумное мышление», но они

3
ответ дан 27 November 2019 в 21:58
поделиться

Это зависит.

Пример: вы хотите поместить свое приложение в большой контекст (EAI), тогда вам следует используйте XML (возможно, Webservices и WSDL).

Пример 2: Если вам нужен простой пользовательский интерфейс, основанный на javascript и ajax, вам следует рассмотреть JSON.

JSON наиболее полезен при работе с javascript. В большинстве случаев XML библиотеки настолько просты в использовании,

3
ответ дан 27 November 2019 в 21:58
поделиться

Если вы выберете XML, используйте SimpleXML , чрезвычайно простую в использовании библиотеку

1
ответ дан 27 November 2019 в 21:58
поделиться

Если вы не использовали ни то, ни другое, выберите JSON. Ответы на данный момент верны в том, что есть много помощи для обоих, и вы довольно быстро освоите любой из них. JSON имеет дополнительное преимущество в том, что он менее раздут, чем XML, и может быть легко «переведен» в javascript на клиенте

1
ответ дан 27 November 2019 в 21:58
поделиться

Я использую JSON с PHP из-за его простоты:

$arr = array('foo' => 'bar', 'animals' => array('cat', 'dog')); // Create any array.
$json = json_encode($arr); // Converts any array to JSON.
1
ответ дан 27 November 2019 в 21:58
поделиться

Внизу страницы json.org есть ряд (возможно, односторонних) статей о JSON и XML.

Вот одна .

Я обычно предпочитаю JSON, потому что он намного лучше подходит для данных, которые я обычно представляю, которые в моей работе будут такими, как вершины, сетки и т. Д. В зависимости от ваших данных XML может быть прекрасным форматом.

0
ответ дан 27 November 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: