Возвращение JSON из PHP в JavaScript?

У меня есть PHP-скрипт, который вызывается через jQuery AJAX. Я хочу, чтобы PHP-скрипт возвращал данные в формате JSON в javascript. Вот псевдокод в скрипте PHP:

$json = "{"; foreach($result as $addr) { foreach($addr as $line) { $json .= $line . "\n"; } $json .= "\n\n"; } $json .= "}"; 

В принципе, мне нужны результаты двух циклов, которые нужно вставить в $ json.

Php имеет встроенную функцию JSON Serializing.

 json_encode 

json_encode

Пожалуйста, используйте это, если вы можете и не страдаете синдромом Inv Invented Here.

Вот несколько недостающих в предыдущих ответах:

  1. Установите заголовок в PHP:

     header('Content-type: application/json'); echo json_encode($array); 
  2. json_encode() может возвращать массив JavaScript вместо объекта JavaScript, см.
    Возвращение JSON из скрипта PHP
    Это может быть важно знать в некоторых случаях, когда массивы и объекты не совпадают.

В документации PHP есть раздел JSON . Вам понадобится PHP 5.2.0.

Начиная с PHP 5.2.0, расширение JSON встраивается и компилируется в PHP по умолчанию.

Если вы этого не сделаете, вот библиотека PECL, которую вы можете установить.

 <?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_encode($result) 

Это также сохранит ключи массива.

Помните, что json_encode работает только с utf8-кодированными данными.

Вы можете использовать Simple JSON для PHP . Он отправляет заголовки, чтобы помочь вам подделать JSON.

Это выглядит как :

 <?php // Include the json class include('includes/json.php'); // Then create the PHP-Json Object to suits your needs // Set a variable ; var name = {} $Json = new json('var', 'name'); // Fire a callback ; callback({}); $Json = new json('callback', 'name'); // Just send a raw JSON ; {} $Json = new json(); // Build data $object = new stdClass(); $object->test = 'OK'; $arraytest = array('1','2','3'); $jsonOnly = '{"Hello" : "darling"}'; // Add some content $Json->add('width', '565px'); $Json->add('You are logged IN'); $Json->add('An_Object', $object); $Json->add("An_Array",$arraytest); $Json->add("A_Json",$jsonOnly); // Finally, send the JSON. $Json->send(); ?> в <?php // Include the json class include('includes/json.php'); // Then create the PHP-Json Object to suits your needs // Set a variable ; var name = {} $Json = new json('var', 'name'); // Fire a callback ; callback({}); $Json = new json('callback', 'name'); // Just send a raw JSON ; {} $Json = new json(); // Build data $object = new stdClass(); $object->test = 'OK'; $arraytest = array('1','2','3'); $jsonOnly = '{"Hello" : "darling"}'; // Add some content $Json->add('width', '565px'); $Json->add('You are logged IN'); $Json->add('An_Object', $object); $Json->add("An_Array",$arraytest); $Json->add("A_Json",$jsonOnly); // Finally, send the JSON. $Json->send(); ?>