Зачем нужно использовать JSON в php и AJAX


Я только начал делать 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.

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

Author: Barry, 2011-02-03

2 answers

Зачем использовать 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. Но кодирование этого вручную, а затем декодирование вручную будет значительно более трудоемким.

 23
Author: Chris Laplante, 2011-02-05 20:45:17

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

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

 5
Author: deceze, 2011-02-03 01:41:28