Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование валидного JSON 
:(
    Опции темы
Isaev
Дата 27.11.2013, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 8.11.2007
Где: Germany

Репутация: нет
Всего: нет



Нужно составить валидный JSON ответ
делаю так:
Код

      $num=0;
      while($row=mysqli_fetch_assoc($q)) {
     $mid=$row['id'];
     $title=$row['title'];
     $language=$row['language'];
     $arr[$num]=array($mid,$title,$language);
         ++$num;
      }  
      //var_dump($arr);

получаю:
[["6","Text eng","en"],["13","Text deu","de"]]
а хотелось бы вот в таком виде получить:
{"name":{"6":["Text eng","en"],"13":["Text deu","de"]}
что-то я запутался в структурах совсем... и каким образом делается объект вместо массива?
PM MAIL ICQ   Вверх
ksnk
Дата 27.11.2013, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Isaev @  27.11.2013,  10:43 Найти цитируемый пост)
и каким образом делается объект вместо массива? 

json_encode?
Код

json_encode(array('name'=>$arr));


Это сообщение отредактировал(а) ksnk - 27.11.2013, 11:17


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 27.11.2013, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Код

$num=0;
     while($row=mysqli_fetch_assoc($q)) {
          $mid=$row['id'];
          $title=$row['title'];
          $language=$row['language'];
          $arr = new stdClass();
          $arr->{$mid} = array($title,$language);
          ++$num;
     }  

так как name в примере отсутствует, то и не стал его вставлять


хотя конечно делать числовые свойства - неудачный вариант
PM MAIL WWW   Вверх
Isaev
Дата 27.11.2013, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 8.11.2007
Где: Germany

Репутация: нет
Всего: нет



Цитата(ksnk @  27.11.2013,  11:14 Найти цитируемый пост)
json_encode?

ну это само собой разумеется, но внешние {} оно не дорисовывает

Цитата(bars80080 @  27.11.2013,  11:22 Найти цитируемый пост)
хотя конечно делать числовые свойства - неудачный вариант 

согласен, но в таком виде же будет не валидныый объект? хотя в более подходящем виде
{"name":{["6","Text eng","en"],["13","Text deu","de"]}
как результат требуется передать выборку из таблицы в общем, name имя новой таблицы, остальное - содержимое... для каждой записи перечислять названия полей глупо, ибо это умножает траффик, а к столбцам вполне удобно обращаться и по индексам, заранее зная структуру

есть предложения как это лучше представить?
PM MAIL ICQ   Вверх
ksnk
Дата 27.11.2013, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Isaev @  27.11.2013,  11:49 Найти цитируемый пост)
но внешние {} оно не дорисовывает

да ну?
Код

echo json_encode(array('name'=>array(6=>array("Text eng","en"),13=>array("Text deu","de"))));

Код

{"name":{"6":["Text eng","en"],"13":["Text deu","de"]}}



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.