Не могли бы вы рассказать мне, что такое использование JSON (в Javascript и PHP). когда нам нужен метод JSON.
Я прочитал следующую ссылку, но я не получил никакой информации о реализации JSON в любом проекте.
http://www.json.org/js.html
JSON – это легкий формат обмена данными (подумайте об этом как XML на диете). В принципе, в любом месте, где вы можете использовать XML для сериализации данных, вы можете использовать JSON.
Несмотря на свое название, одно из основных применений формата JSON заключается в веб-разработке AJAX (хотя, конечно, не единственном). Это часто предпочтительнее традиционного XML для его легкого синтаксиса.
JSON – это формат данных, используемый при передаче данных. Он используется в основном в Javascript AJAX-вызовах.
Структура JSON – это просто квадратные имена: пары значений. Из-за его компактности и простоты это лучшая структура для передачи относительно небольших наборов данных и вещей, которые могут быть сгруппированы в пары имя: значение.
Например:
Прототип. Js Ajax-вызов, преобразующий и принимающий данные JSON:
my_prototype_class = Class.create(); my_prototype_class.prototype = { initialize: function() { this.myarray = new Array(); //do initialization }, my_function: function(direction){ new Ajax.Request('/my/url.php', { method: 'post', parameters: { name: value, myarray_data: this.myarray.toJSON() }, onSuccess: function(transport) { var response = transport.responseText.evalJSON(); //handle response }, onFailure: function(){ //handle failure } }); } } Event.observe(window, "load", function(){new my_prototype_class();}, false);
И используя PHP, вы будете обрабатывать запрос с чем-то вроде этого:
function my_php_handler() { #parse POST data $name = $_POST["name"]; $myarray_data = $_POST["myarray_data"]; #transform the data in some way #return encoded string echo json_encode($results); }
Что-то вроде:
[{"myarray": [], "name": value}]
будут переданы в HTTP-запросе / ответе. Данные в этом формате называются JSON.
JSON – это всего лишь формат данных. Если вам нужно хранить или переносить данные, которые не сложнее, чем вложенные пары пар имя-значение, значения которых поддерживаются стандартом JSON, тогда JSON может быть правильным форматом данных для вашего проекта.
Если у вашего проекта были потребности хранения / транспортировки данных;)
JSON – отличный формат для передачи данных между Javascript и PHP. Мое наиболее распространенное использование – это сообщения о статусе.
Вот несколько Javascript для выполнения Ajax-запроса для небольшого PHP-скрипта.
new Ajax.Request('dostuff.php', { method: 'get', parameters: {'param1': 'this is param 1'}, onSuccess: function(response, jsonHeader){ if(jsonHeader['status'] == 'Success'){ //Everything is OK, do stuff }else{ alert(jsonHeader['status']); } }, onFailure: function(){ alert('Fail!'); } });
Затем, на стороне PHP, вы можете иметь что-то вроде этого:
$jsonHeader = array(); if($_REQUEST['param1']) { echo '<p>You passed ' . $_REQUEST['param1'] . '</p>'; $jsonHeader['status'] = 'Success'; }else { $jsonHeader['status'] = 'Failed because the request was invalid'; } if(is_array($jsonHeader) and sizeof($jsonHeader) > 0) { header('X-JSON: (' . json_encode($jsonHeader) . ')'); }
Оптимальным является то, что Prototype автоматически расшифровывает заголовок X-JSON, создаваемый PHP.
Конечным результатом является то, что аргумент jsonHeader метода onSuccess в Javascript автоматически преобразуется в массив, который представляет собой те же данные, что и массив $ jsonHeader в PHP
JSON – относительно легкий формат обмена данными (по крайней мере, по сравнению с XML или HTML) и наиболее полезен при обмене небольшими объемами данных между веб-клиентом и веб-сервером / службой.
Тем не менее, это не лучший выбор (хотя и намного лучше, чем XML) для обмена большими списками данных из-за его накладных расходов на каждую обменную строку.
Я бы предложил использовать JSON, если вам нужно манипулировать извлеченными данными (то есть через вызов Ajax в вашем браузере) с кодом JavaScript. В таком случае JSON очень удобен, так как вы можете напрямую загрузить его в свой JavaScript и использовать его (поэтому Java Script Object Notation => JSON). Это называется десериализацией строки JSON в объектах JavaScript. Это можно сделать, используя eval (), который, однако, я читаю, представляет некоторые проблемы безопасности, поэтому следует использовать некоторый сериализатор JSON (de).
Как описано на странице, которую вы упомянули, у вас есть строка JSON, например
{"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} ] }
который отправляется по сети, инициированный некоторым вызовом Ajax на клиенте, где затем обращается вызов (например, в .Net)
function onSuccess(result){ var myObj = Sys.Serialization.JavaScriptSerializer.deserialize(result, false); myObj.bindings[0].ircEvent... }
Преимуществом является простое (де) сериализация вместе при использовании JavaScript, в основном на веб-разработке с Ajax. В противном случае я бы не использовал JSON, а скорее полагался на XML, поскольку для настольных приложений есть действительно мощные библиотеки разбора.
Все остальные ответы велики, но, возможно, самое простое объяснение для вашего конкретного случая (JavaScript + PHP): JSON – это самый простой способ перевести объект JavaScript в ассоциативный массив или объект PHP (и наоборот) .
Взгляните на json_encode () и json_decode () для PHP-стороны вещей. На стороне JavaScript простой eval () – это самый простой (но наименее безопасный!) Способ получить объект из строки JSON, но у вашей библиотеки выбора наверняка будут функции по уходу за этим для вас, и если вы ориентируетесь на новые браузеры, вы можете использовать объект JSON ECMAScript 5 .
JSON в основном используется как легкая и удобная для читателя альтернатива XML в веб-приложениях AJAX.