На andyrusterholz at g-m-a-i-l dot c-o-mвышеупомянутой странице есть сообщение, которое также может обрабатывать сложные вложенные массивы (если это вам нравится).
Блин, братан, ты сразу ответил на этот вопрос =). Я был в восторге от легкого вопроса =)
Кэлвин Фродж
2
У меня есть этот код while ($ row = mysql_fetch_assoc ($ query_insert)) {$ control = array ('regione' => $ row ["regione"], 'totale' => $ row ["prezzi"]); } print (json_encode (% control)); но верните {"regione": "Puglia", "totale": "5.15"} не [{..}, {..}]
Mimmo
2
Добавьте 1 для ссылки на лимон. :-)
ban-geoengineering
Я сделал это, но с помощью функции var_dumb получаю следующий ответ. Как мне избавиться от строки (59)? string (59) "[{" result ":" success "}, {" message ":" Данные обновлены! "}]"
Джеймс Смит
115
Используйте собственный PHP json_encode, например:
Простите, но если я хочу {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
41
Просто: просто создайте (вложенный) массив PHP и вызовите json_encodeего. Числовые массивы преобразуются в списки JSON ( []), ассоциативные массивы и объекты PHP преобразуются в объекты ( {}). Пример:
Простите, но если я хочу {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
2
Прочтите мой пост еще раз. Если вы хотите что-то преобразовать в объект JSON, сделайте это ассоциативным массивом в PHP (где ключи - это строки). Если вы хотите перевести его в список JSON, сделайте его простым массивом (с неявными целочисленными ключами). Значение каждого элемента массива, в свою очередь, может быть массивом, что вам и нужно.
tdammers
Спасибо, это также ответило на мой вопрос.
Шон Верниг
Я сделал это, но с помощью функции var_dumb получаю следующий ответ. Как избавиться от струны (59)? string (59) "[{" result ":" success "}, {" message ":" Данные обновлены! "}]"
Джеймс Смит
13
Лучший способ, который вы должны использовать каждый раз для создания json в php, - это сначала преобразовать значения в массив ASSOCIATIVE.
После этого просто закодируйте с помощью json_encode($associativeArray). Я думаю, что это лучший способ создать json на php, потому что всякий раз, когда мы получаем результат sql-запроса на php, большую часть времени мы получали значения с помощью fetch_assocфункции, которая также возвращает один ассоциативный массив.
Просто набрав эту единственную строку, вы получите массив json,
echo json_encode($array);
Обычно вы используете json_encodeдля чтения данных из приложения для iOS или Android. поэтому убедитесь, что вы не повторяете ничего, кроме точного массива json.
Я создал грубый и простой класс jsonOBJ для использования в моем коде. PHP не включает функции json, такие как JavaScript / Node do. Вам нужно повторить итерацию по-другому, но это может быть полезно.
<?php
// define a JSON Object classclass jsonOBJ {private $_arr;private $_arrName;function __construct($arrName){
$this->_arrName = $arrName;
$this->_arr[$this->_arrName]= array();}function toArray(){return $this->_arr;}function toString(){return json_encode($this->_arr);}function push($newObjectElement){
$this->_arr[$this->_arrName][]= $newObjectElement;// array[$key]=$val;}functionadd($key,$val){
$this->_arr[$this->_arrName][]= array($key=>$val);}}// create an instance of the object
$jsonObj =new jsonOBJ("locations");// add items using one of two methods
$jsonObj->push(json_decode("{\"location\":\"TestLoc1\"}",true));// from a JSON String
$jsonObj->push(json_decode("{\"location\":\"TestLoc2\"}",true));
$jsonObj->add("location","TestLoc3");// from key:val pairs
echo "<pre>". print_r($jsonObj->toArray(),1)."</pre>";
echo "<br />". $jsonObj->toString();?>
// return a JSON Object (jsonOBJ) from the rowsfunctionParseRowsAsJSONObject($arrName, $rowRS){
$jsonArr =new jsonOBJ($arrName);// name of the json array
$rows = mysqli_num_rows($rowRS);if($rows >0){while($rows >0){
$rd = mysqli_fetch_assoc($rowRS);
$jsonArr->push($rd);
$rows--;}
mysqli_free_result($rowRS);}return $jsonArr->toArray();}
Ответы:
Легкое гороховое лимонное выжимание: http://www.php.net/manual/en/function.json-encode.php
На
andyrusterholz at g-m-a-i-l dot c-o-m
вышеупомянутой странице есть сообщение, которое также может обрабатывать сложные вложенные массивы (если это вам нравится).источник
Используйте собственный PHP
json_encode
, например:Обновление : Чтобы ответить на ваш вопрос в комментарии. Вы делаете это так:
источник
Просто: просто создайте (вложенный) массив PHP и вызовите
json_encode
его. Числовые массивы преобразуются в списки JSON ([]
), ассоциативные массивы и объекты PHP преобразуются в объекты ({}
). Пример:Дает тебе:
источник
Лучший способ, который вы должны использовать каждый раз для создания json в php, - это сначала преобразовать значения в массив ASSOCIATIVE.
После этого просто закодируйте с помощью
json_encode($associativeArray)
. Я думаю, что это лучший способ создать json на php, потому что всякий раз, когда мы получаем результат sql-запроса на php, большую часть времени мы получали значения с помощьюfetch_assoc
функции, которая также возвращает один ассоциативный массив.... и т.д.
После этого.
источник
также для массива вы можете использовать короткую аннотацию:
источник
Вот как я могу это сделать с помощью решения, предоставленного @tdammers ниже. Следующая строка будет помещена внутри цикла foreach.
А затем закодируйте массив с помощью функции кодирования json
источник
Просто набрав эту единственную строку, вы получите массив json,
echo json_encode($array);
Обычно вы используете
json_encode
для чтения данных из приложения для iOS или Android. поэтому убедитесь, что вы не повторяете ничего, кроме точного массива json.источник
источник
источник
Я создал грубый и простой класс jsonOBJ для использования в моем коде. PHP не включает функции json, такие как JavaScript / Node do. Вам нужно повторить итерацию по-другому, но это может быть полезно.
Выведет:
Для итерации преобразуйте в обычный объект:
Затем:
Выходы:
TestLoc1
TestLoc2
TestLoc3
Прямой доступ:
Практический пример:
источник