jQuery почему json ширина ключа объекта 0 преобразуется в массив - PullRequest
0 голосов
/ 08 ноября 2019

Очень странная вещь вызывает у меня головную боль.

Вот мой пример:

PHP:

$my_obj1 = ["0" => "something"];
$my_obj1 = json_encode($my_obj1);

$my_obj2 = ["1" => "something else"];
$my_obj2 = json_encode($my_obj2);

JS:

var my_obj1 = <?php echo json_encode(json_decode($my_obj1))?>;
var my_obj2 = <?php echo json_encode(json_decode($my_obj2))?>;

console.log( my_obj1, my_obj2 );
//show -> ["something"] {1: "something else"}

//espected ->  {"0":"something"} {1: "something else"}

как я положил в комментариях, ожидается 2 объекта. но это дает мне один массив и один объект

Я использую jQuery 3.1.0

1 Ответ

2 голосов
/ 08 ноября 2019

Вы можете использовать опцию JSON_FORCE_OBJECT для json_encode, чтобы обойти эту проблему:

$my_obj1 = ["0" => "something"];
$my_obj1 = json_encode($my_obj1, JSON_FORCE_OBJECT);
echo $my_obj1;

Вывод:

{"0":"something"}

Демо на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...