За последние 24 часа нас посетили 22328 программистов и 1430 роботов. Сейчас ищут 579 программистов ...

Помогите довести JSON до ума..

Тема в разделе "PHP и базы данных", создана пользователем IgoryanVL, 21 июн 2019.

  1. IgoryanVL

    IgoryanVL Новичок

    С нами с:
    29 мар 2018
    Сообщения:
    12
    Симпатии:
    0
    Есть код для формирования JSON из таблицы БД:
    PHP:
    1.     <?php
    2.  
    3. $dbhost = 'localhost';
    4. $dbuser = '123123';
    5. $dbpass = '123123';
    6. $dbname = 'orders_calendar';
    7.  
    8. function get_data ()
    9. {
    10.     $connect = mysqli_connect("localhost", "123123", "123123", "orders_calendar");
    11.     $connect->set_charset("utf8");
    12.  
    13. $query = "SELECT img_url, fio, social, text_otziv FROM otzivi";
    14. $result = mysqli_query($connect, $query);
    15. $otziv_data = array();
    16. while($row = mysqli_fetch_array($result) )
    17. {
    18.    
    19.     $otziv_data[] = array(
    20. 'img' => $row["img_url"],
    21. 'user_name' => $row["fio"],
    22. 'social' => $row["social"],
    23. 'text' => $row["text_otziv"],
    24.     );
    25. }
    26. return json_encode($otziv_data, JSON_UNESCAPED_UNICODE);
    27. }
    28.  
    29. echo '<pre>';
    30. print_r(get_data());
    31. echo '</pre>';
    32. ?>
    На выходе выглядит вот так - http://kitup.ru/admin/events/gen-json.php

    1) Как мне добавить {"data" : [текущий массив..] }?
    2) Сделать нормальный внешний вид, где данные объекта будут разбиваться по новым строкам, а не все в 1 строку?
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    1) $otziv_data['data'] = $otziv_data;
    Угадай куда добавить эту строку.
    2) Это нормальный вид json.
    Хочешь другой вид распакуй его json_decode()
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    PHP:
    1. <?php
    2. $foo = [
    3.     'bar', 'baz'
    4. ];
    5.  
    6. $foo['data'] = $foo;
    7.  
    8. var_dump($foo);
    @IgoryanVL JSON_PRETTY_PRINT
     
    Valick нравится это.
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @romach, спасибо
    $otziv_data = ['data'=>$otziv_data]; взамест $otziv_data['data'] = $otziv_data;
     
    romach нравится это.