如何让Zend_JSON创建对象而不是数组


How to make Zend_JSON creating objects rather than arrays

我使用了zend的JSON助手,我遇到了一个问题。。。当我使用这个代码:

$this->_helper->json(array(1 => "value 1", 2 => "value 2"));

我得到一个对象:

{1: "value 1", 2: "value 2" }

但是,如果键是一个以"0"开头的序列,我会得到一个数组。例如,带有:

$this->_helper->json(array(0 => "value 0", 1 => "value 1"));

我得到一个数组:

["value 0", "value 1"]

每次使用此方法时,如何获取对象?(我想要第二个例子中的结果{0: "value 0", 1: "value 1" })。

您可以强制它成为对象

<?php
$arr = array(1 => "value 1", 2 => "value 2");
$x = json_encode($arr);
var_dump($x);
//use this to force to be an object
$y = json_encode(array(0 => "value 1", 1 => "value 2"), JSON_FORCE_OBJECT);
var_dump($y);
// how it is
$z = json_encode(array(0 => "value1", 1 => "value 2" ));
var_dump($z);
?>

给出

string(29) "{"1":"value 1","2":"value 2"}"
string(29) "{"0":"value 1","1":"value 2"}"
string(20) "["value1","value 2"]"