Из PHP-кода я хочу создать json-массив:
[ {"region":"valore","price":"valore2"}, {"region":"valore","price":"valore2"}, {"region":"valore","price":"valore2"} ]
Как я могу это сделать?
Легкая лихорадка лисички: http://www.php.net/manual/en/function.json-encode.php
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
На вышеупомянутой странице есть сообщение andyrusterholz at gmail dot com
которое также может обрабатывать сложные вложенные массивы (если это ваша вещь).
Используйте собственный json_encode
PHP, например:
<?php $arr = array( array( "region" => "valore", "price" => "valore2" ), array( "region" => "valore", "price" => "valore2" ), array( "region" => "valore", "price" => "valore2" ) ); echo json_encode($arr); ?>
Обновление : ответьте на свой вопрос в комментарии. Вы делаете это так:
$named_array = array( "nome_array" => array( array( "foo" => "bar" ), array( "foo" => "baz" ) ) ); echo json_encode($named_array);
Просто: просто создайте (вложенный) массив PHP и вызовите json_encode
на нем. Числовые массивы переводятся в списки JSON ( []
), ассоциативные массивы и объекты PHP преобразуются в объекты ( {}
). Пример:
$a = array( array('foo' => 'bar'), array('foo' => 'baz')); $json = json_encode($a);
Дает тебе:
[{"foo":"bar"},{"foo":"baz"}]
Лучший способ, который вы должны делать каждый раз для создания json в php, – это сначала преобразовать значения в массив ASSOCIATIVE.
После этого просто кодируйте с помощью json_encode($associativeArray)
. Я думаю, что это лучший способ создать json в php, потому что всякий раз, когда мы извлекаем форму sql-запроса в php большую часть времени, мы получаем значения, используя функцию fetch_assoc
, которые также возвращают один ассоциативный массив.
$associativeArray = array(); $associativeArray ['FirstValue'] = 'FirstValue';
… и т.д.
После этого.
json_encode($associativeArray);
также для массива вы можете использовать короткую аннотацию:
$arr = [ [ "region" => "valore", "price" => "valore2" ], [ "region" => "valore", "price" => "valore2" ], [ "region" => "valore", "price" => "valore2" ] ]; echo json_encode($arr);
$json_data = '{ "Languages:" : [ "English", "Spanish" ] }'; $lang_data = json_decode($json_data); var_dump($lang_data);
Просто набрав эту строку, вы получите массив json,
echo json_encode($array);
Обычно вы используете json_encode
для чтения данных из приложения ios или Android. поэтому убедитесь, что вы не повторяете ничего другого, кроме точного массива json.