Как вывести JSON сниппетом

Почему при выводе JSON из сниппета на страницу
возвращают контент ленгхт 0

$array = array(
                    array(
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5),
                            array('a' => '', 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5)
                            ),
                    array(
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5),
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                            array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5)
                        )
                );

echo json_encode($array);

ОТВЕТ
нужно
echo json_encode($array, JSON_FORCE_OBJECT);
Почему не понял. Но запахало
Спасибо but1head дал ссылку JSON_ENCODE of multidimensional array giving different results
Konstantin
15 июня 2016, 13:49
modx.pro
2 347
0

Комментарии: 11

Konstantin
15 июня 2016, 16:57
0
Accept-Ranges	bytes
Cache-Control	no-store, no-cache, must-revalidate
Connection	close
Content-Length	0
Content-Type	application/json; charset=UTF-8
Date	Wed, 15 Jun 2016 13:55:59 GMT
Expires	Thu, 19 Nov 1981 08:52:00 GMT
Pragma	no-cache
Server	LiteSpeed
Set-Cookie	browser=standard; expires=Wed, 22-Jun-2016 13:55:59 GMT; Max-Age=604800; path=/; HttpOnly
X-Powered-By	PHP/7.0.7
    Konstantin
    15 июня 2016, 18:38
    0
    $new_array = array(
                        array(
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5),
                                array('a' => '', 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5)
                                ),
                        array(
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5),
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5), 
                                array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5)
                            )
                    );
      but1head
      15 июня 2016, 18:42
      0
      Так что вам надо то?
      Вывести [{'a':1, 'b':2................]?
      echo $new_array; при условии что строка не была декодирована до этого.
      если была echo $modx->toJson($new_array);

      Если код должен прилетать в js, то вконце надо echo $json а не return $json (хз почему, но ретурн у меня не работал ниразу еще).
        Konstantin
        15 июня 2016, 18:50
        0
        Выше я массив дал
        Вот так его принтит print_r()

        Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [1] => Array
                        (
                            [a] => 
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [2] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [3] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [4] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                )
        
            [1] => Array
                (
                    [0] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [1] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [2] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [3] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                    [4] => Array
                        (
                            [a] => 1
                            [b] => 2
                            [c] => 3
                            [d] => 4
                            [e] => 5
                        )
        
                )
        
        )
        Ноооооо!
        Этот же массив при выводе так
        echo $modx->toJSON($new_array);
        или так
        echo json_encode($new_array);

        Ничего не выводит
        Пустая страница
          but1head
          15 июня 2016, 18:59
          +1
          <?php
          $test = array();
          $test[0][] = array('a' => 1, 'b' => 2);
          $test[0][] = array('a' => 1, 'b' => 2);
          $test[0][] = array('a' => 1, 'b' => 2);
          $test[1][] = array('a' => 1, 'b' => 2);
          $test[1][] = array('a' => 1, 'b' => 2);
          $test[1][] = array('a' => 1, 'b' => 2);
          echo json_encode($test);


          [[{"a":1,"b":2},{"a":1,"b":2},{"a":1,"b":2}],[{"a":1,"b":2},{"a":1,"b":2},{"a":1,"b":2}]]
          мб это поможет
            Konstantin
            15 июня 2016, 19:04
            0
            да, растолкуйте причину сего поведения пожалуйста?
            Я напишу ответ под вопросом и закрою это! блиннн я столько времени убил (
              but1head
              15 июня 2016, 19:07
              0
              С таким не сталкивался, код чуть выше валидный на 100%. Почему у Вас не работает даже представить не могу, ждем «старлеев» )
                Konstantin
                15 июня 2016, 19:20
                0
                Ладно, не будем ждать их ) и так времени много потрачено

                Спасибо!!!
        Konstantin
        15 июня 2016, 18:53
        0
        [2016-06-15 18:52:18] (ERROR @ /home/p/public_html/***/core/model/modx/modcachemanager.class.php: 350) Error caching lexicon topic lexicon/ru/core/resource
          Konstantin
          15 июня 2016, 18:57
          0
          эта ошибка вроде как не имеет отношения
          t3mnikov
          15 июня 2016, 19:22
          0
          die($modx->toJson($new_array));
          Нужно прерывать выполнение скрипта.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            11