Почему нужно использовать JSON в PHP и AJAX - PullRequest
13 голосов
/ 03 февраля 2011

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

Но когда я решил посмотреть на работу других (в надежде получить / изучить хорошие практики и коды), многие или почти все программы, которые имеют дело с ajax, содержат в себе JSON. Поэтому я решил изучить и прочитать JSON , особенно этот , но я думаю, потому что я впервые с ним сталкиваюсь, у меня проблема с погружением в мой мозг. Да, я знаю, что это «легкий способ описания иерархических данных», я также знаю, как сделать JSON похожим на смешивание литерального массива и объекта в JS и как воспроизвести его в js.

Но мой вопрос: в чем разница и в чем преимущество, если не использовать его? Когда я все еще могу получать и хранить данные на сервере, используя ajax и базу данных без JSON. Кстати, я пока не фокусируюсь на XML, потому что, исходя из моих исследований, лучше использовать JSON в AJAX.

Можете ли вы дать мне несколько реальных сценариев, касающихся

s1. ajax php mysql ( это с какими недостатками? )

и

s2. Ajax PHP MySQL JSON ( это с какими преимуществами? )

Я имею в виду, моя цель - отправлять и получать данные, и я уже могу сделать это с помощью s1.

Извините, если вы нашли мой вопрос глупым. Тиа. :)

Ответы [ 2 ]

23 голосов
/ 03 февраля 2011

Зачем использовать JSON? Ответ: мобильность и структура .

JSON является переносимым , потому что анализаторы и средства записи доступны для многих, многих языков. Это означает, что JSON, который генерирует скрипт PHP, может быть очень легко понят скриптом JavaScript. Это лучший способ передавать сложные структуры, такие как массивы и объекты, и при этом поддерживать совместимость с несколькими языками.

JSON обеспечивает структуру , потому что данные, которые вы передаете с ним, могут иметь согласованное форматирование. Это вместо передачи данных в виде обычного текста (то есть неформатированных), таких как разделенные запятыми или разделенные данные.

Данные, которые просто разграничены (например, «BookName1, BookName2, BookName3»), людям труднее понимать, отлаживать и работать с ними. Если вы хотите отладить ответ между вашим сервером и вашим браузером, а данные разделены (как в моем примере выше), вам может быть трудно понять это. Кроме того, если вы хотите добавить разные типы данных, предоставить отдельные записи и т. Д., То пользовательский формат данных становится более сложным. В конце концов, вы можете заново изобрести JSON.

Как примечание, JSON действительно лучше, чем XML. Это гораздо эффективнее в космическом пространстве. Там нет имен тегов, чтобы занять место. Структура создается с помощью вложенных фигурных скобок вместо подробных тегов.

Ресурсы

Вот интересная статья о различиях и плюсах / минусах XML и JSON: http://www.json.org/xml.html

Примеры

По вашему запросу приведен пример кодирования JSON с помощью PHP. Это скопировано с документов :

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);

Выход:

{"a":1,"b":2,"c":3,"d":4,"e":5}

Сравните это с чем-то вроде этого без JSON:

a,1
b,2
c,3
d,4
e,5

Чтобы разобрать это, вам придется перебирать каждую строку, разбивать значения самостоятельно, а затем создавать массив. Это не так сложно, но представьте, что у вас есть вложенный объект:

$arr = array ('a'=> array(1,2,3),'b'=> array('a' => 1, 'b' => 2),'c'=>3,'d'=> array(1,2,3,4,5) ,'e'=>5); // etc.

С JSON нет ничего лучше кодирования. Просто используйте json_encode. Но кодирование этого вручную, а затем декодирование вручную будет значительно более трудоемким.

5 голосов
/ 03 февраля 2011

Программирование на любом языке программирования, в вашем распоряжении есть несколько различных типов данных, включая очень полезный тип array.
Обмен данными между Javascript и любым языком на стороне сервера можетпроисходят только через строки.Т.е. вы можете отправлять и возвращать любой текст , но нет способа отправить собственный массив или числовой тип.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...