2016-12-10 2 views
0

Мне нужно преобразовать объект в JSON, используя php-скрипт.Проблемы преобразования объекта в JSON в php

Я написал этот код в цикле петли:

$zaino->rows[$num_oggetti]->item = $oggetto; 
$zaino->rows[$num_oggetti]->amount = $num; 

После цикла петли преобразовать объект в JSON: json_encode($zaino);

Это то, что я получаю:

{"rows":{"1":{"item":"Soffio di Morte","amount":"1"},"2":{"item":"Pietra Anima di Ferro","amount":"11"},"3":{"item":"Pietra Anima di Legno","amount":"12"}} 

Но Мне нужно что-то вроде:

{"rows":[{"item":"Soffio di Morte","amount":"1"},{"item":"Pietra Anima di Ferro","amount":"11"},{"item":"Pietra Anima di Legno","amount":"12"}]} 

без номеров между "", так что я могу легко получить значения, используя, например, $zaino->rows[1]->item после вызова json_decode. Как мне это сделать?

+0

$ zaino-> rows [] = ('item' => $ item, 'amount' => $ num); –

+0

отредактировал: $ zaino-> rows [] = array ('item' => $ item, 'amount' => $ num); –

+0

Спасибо, человек! Это решило мою проблему! –

ответ

0

Проблема заключается в том, что $num_oggetti - это строковое значение, а не число (да, числовое, но не число). Это говорит PHP, что вы устанавливаете ключ вместо индекса.

Если вам не нужен фактический индекс вы могли бы сделать что-то вроде:

$zaino->rows[] = [ 
    'item' => $oggetto, 
    'amount' => $num 
]; 

Таким образом, вы оставляете поколение индекса полностью до PHP, и вы получите выход JSon вы хотите.

Смежные вопросы