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