Публикуется в целях популяризации JSON среди читателей Хабрахабра. JSON (англ. Java. Script Object Notation) — формат обмена данными, легко читаем людьми, легко обрабатывается и генерируется программами. Перевод магазина на другой язык и изменение текстов Яндекс.Маркет: строим YML -фид для размещения товаров в Маркете и других агрегаторах. Основан на подмножестве языка Java. Script, Standard ECMA- 2. Edition — декабрь 1. JSON — Википедия. Что является правильным форматом ответа на XMLHttp. Генераторы прайс-листа в формате XLS (с фото товаров).Request в AJAX- приложениях? Для большинства приложений, основанных на разметке, ответ будет простым — (X)HTML. Для информационно- ориентированных приложений выбор будет лежать между XML и JSON. До недавнего времени я не сильно задавался вопросом, что лучше использовать, XML или JSON. Я просто предполагал, что в каждом конкретном случае стоит выбирать наиболее подходящий формат, и все. Но недавно мне довелось проверить на практике этот подход. В этой заметке я опишу критерии, по которым проводил сравнение между XML и JSON, и собственные умозаключения. Итак, критерии следующие. Удобочитаемость кода. Простота создания объекта данных на стороне сервера. YML конвертер CatalogLoader предназначен для преобразования. Импорт товаров для Prestashop 1.5.4 в CSV/XLS - Duration: 22:08. Загрузите документ, который вы хотите преобразовать в HTML . DOC в HTML, DOCX в HTML, XLS в HTML, XLSX to HTML, PPT в HTML, PPTX в HTML, . YML конвертер CatalogLoader предназначен для преобразования Импорт товаров для Prestashop 1.5.4 в CSV/ XLS - Duration: 22:08. По эффективности и удобству использования этот PDF CSV конвертер превосходит множество других. Конвертировать EPS в XLS. Необходимо получить csv/ xls файл в котором оно будет в 5 столбцов. Как конвертировать yml (xml яндекс.маркета) в CSV? Как на JS обработать CSV-файл и сформировать из содержимого HTML -таблицу? Простота обработки данных на стороне клиента. Простота расширения. Отладка и исправление ошибок. Безопасность. Удобочитаемость кода. Peter- Paul Koch c Quirks. Mode. org рассматривает удобочитаемость кода как основной критерий своего анализа. По моему мнению, она является только второстепенной целью, но вы с легкостью согласитесь, что JSON гораздо проще воспринимается «на глаз», чем XML — стоит просто посмотреть на следующие примеры. XML. < font color=. Например, на Java можно использовать JAXB и Xml. Beans для создания XML- ответа. Примечание: ниже перевод обзорной статьи «JSON vs XML», в браузере) в плане преобразования XML в разметку (например, в HTML). Ниже приведен пример с использованием JAXB. Тем не менее, на JSON. Ниже приведен пример создания ответа при помощи Json- lib. Однако, стоит отметить, что сейчас известно гораздо больше способов генерации XML, нежели JSON. Некоторые из этих программных интерфейсов для XML существуют уже много лет и по этой причине могут быть стабильнее при использовании для сложных приложений. Другим аспектом, который стоит рассмотреть, будет количество ресурсов, которое используется для генерации ответа. Если при получении данных уже производятся «тяжелые» операции, то для серверной части не составит большого труда дополнительно их преобразовывать в XML для ответа. Если же создание XML будет являться самой ресурсоемкой операцией, то лучше использовать JSON. Простота использования. На стороне клиентского приложения обработка JSON- данных как ответа на XMLHttp. Request чрезвычайно проста. Как только эта операция произведена, можно получить доступ к данным, используя свойства преобразованного объекта. Это наиболее изящная часть всего JSON. Теперь рассмотрим XML. Чтобы сделать нижеприведенный фрагмент кода прозрачнее, я убрал все проверки на ошибки. Это очень трудоемкая операция, и она предрасположена к появлению ошибок. К несчастью, в браузере нам приходится иметь дело именно с DOM. Браузеры не поддерживают языка запросов, наподобие XPath, для получения узлов дерева в XML- документе. Поддержка этих функций относится уже к XSLT, но он достаточно ограничен (прим.: в браузере) в плане преобразования XML в разметку (например, в HTML). Рабочая группа по программным Веб- интерфейсам (Web API Working Group) от W3. C работает над интерфейсом селекторов (Selectors API), который может быть использован для применения CSS- селекторов при выборе узлов из объекта Document. Используя такой интерфейс можно будет преобразовать вышеприведенный пример кода в xml. Не сказать, что это большое достижение для XML- документа из этого примера, но может оказаться полезным для работы с сильно разветвленными документами. Этот интерфейс пока еще не завершен, и пройдут еще годы, прежде чем браузеры будут его поддерживать. В общем, если я буду выбирать между XML и JSON, я предпочту JSON из- за простоты реализации обработки на стороне клиента. Расширяемость. Расширяемость помогает уменьшить число связей между поставщиком и получателем данных. В контексте AJAX- приложений, скрипт на стороне клиента должен быть достаточно инвариантным относительно совместимых изменениях в данных. По общему убеждению, XML автоматически является расширяемым просто благодаря наличию буквы «X». Но это не является безусловным правилом (т. Расширяемость XML исходит из того принципа, что вы можете определить дополнительные узлы в вашем XML, а затем применять правило «ненужное пропустить» (т. Например, следующий пример развалится, если вы захотите вставить, например, элемент middle. Name. Чтобы быть инвариантным относительно этого изменения, требуется переписать код, чтобы явно получать элемент < last. Name> , или доступаться к next. Sibling, только если обнаружен потомок с нужным tag. Name. Таким образом, XML является расширяемым до тех пор, как вы пишет код, рассчитывая на будущую расширяемость. Все предельно просто. Вернемся к JSON. Я утверждаю, что расширить JSON- данные проще, чем XML. Это бесспорно требует меньше усилий. Рассмотрим добавление свойства middle. Name к JSON- ответу. Для того, чтобы получить к нему доступ, вам достаточно просто его вызвать. Но что делать в случае обработки человека с или без отчества? Но с JSON расширять данные проще, чем с XML. Вам просто требуется проверить, что требуемое свойство существует у объекта, и действовать в соответствии с результатом проверки. Существует и другая возможность расширить JSON- данные, она заключается в использовании вызовов функций вместе с объявлениями данных прямо в ответе. В этом случае, вы можете и загрузить данные, и выполнить функции. Этим подходом стоит пользоваться с большой оглядкой, ибо он засоряет ответ вызовами функций и создает связь между вызовами и данными. В некоторых источниках также рассматривается потенциальная уязвимость такого подхода с точки зрения безопасности, об этом более подробно изложено немного ниже. Отладка и исправление ошибок. Этот аспект касается как серверной части вашего приложения, так и клиентской. На сервере необходимо удостовериться в том, что данные правильно сформированы и корректны. На стороне клиента должно быть просто отлаживать ошибки в ответе. В случае XML, относительно просто проверять, что данные, отправляемые клиенту, правильно сформированы и корректны. Вы можете использовать schema для ваших данных, и применить ее для проверки данных. С JSON эта задача становится ручной и требует проверку того, что в результате ответа у объекта присутствуют правильные атрибуты. На стороне клиента в обоих случаях тяжело обнаружить ошибки. Для XML браузер будет просто не способен преобразовать его в response. XML. При небольших объемах JSON- данных можно воспользоваться расширением Fire. Bug для отладки и исправления ошибок. Но при больших объемах данных становится несколько затруднительно соотнести сообщение об ошибке с конкретным местом в коде. Безопасность. Dave Johnson в своей заметке JSON и Золотое руно высказывает мнение, что JSON может стать причиной проблем безопасности. Суть заметки сводится к тому, что если вы допускаете вставку вызовов функций наряду с данными в JSON- ответах и используете eval() для обработки ответа, то тем самым вы исполняете произвольный код, фактически, который уже может содержать угрозу безопасности. Но в данном случае, существует некоторое заблуждение в определении угрозы безопасности. Не следует доверять данным или коду, полученным из непроверенного источника. И во- вторых, мы не сможете использовать XMLHttp. Request для связи с доменами, отличными от домена- источника скрипта. Итак, только сами разработчики при создании приложения могут инициировать отправку cookies на сторонний сайт. Это довольно сомнительно, потому что они могут с тем же успехом разместить этот зловредный код где угодно в документе за пределами передаваемого от сервера ответа с данными. Возможно, я что- то упустил, но я не вижу смысла рассматривать JSON как небезопасный по сравнению с XML. Мой выбор. В случае информационно- ориентированных приложений я предпочту использовать JSON, а не XML, в силу его простоты и легкости обработки данных на стороне клиента. XML может быть незаменимым на сервере, но с JSON определенно проще работать на клиенте. Ссылки по теме. Спасибо всем, кто прочитал этот перевод. Ценю и уважаю ваше мнение и комментарии. Постараюсь учесть все пожелания и не остаться в долгу. Если у вас возникнут какие- либо предложения по тематике будущих переводов, не стесняйтесь, напишите их — я постараюсь сделать подборку или детальный обзор материалов по этим темам. Спасибо за внимание. Web Optimizator: проверка скорости загрузки сайтов.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2016
Categories |