在php中将对象转换为JSON的问题

时间:2016-12-10 11:19:45

标签: php json

我需要使用php脚本将对象转换为JSON。

我在循环周期中编写了这段代码:

$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。我该怎么办?

1 个答案:

答案 0 :(得分:0)

问题是$num_oggetti是字符串值,而不是数字(是,数字,但不是数字)。这告诉PHP您正在设置密钥而不是索引。

如果您不需要实际索引,可以执行以下操作:

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

通过这种方式,您可以将索引生成完全保留为PHP,并且您将获得所需的json输出。