[英]json returning string instead of object
我有
$age = implode(',', $wage); // which is object return: [1,4],[7,11],[15,11]
$ww = json_encode($age);
然后我在这里检索
var age = JSON.parse(<?php echo json_encode($ww); ?>);
所以如果我做
alert(typeof(<?php echo $age; ?>)) // object
alert(typeof(age)) //string
在我的情况下,JSON.parse重新调整为字符串。
我怎样才能让json返回为对象?
编辑:
var age = JSON.parse(<?php echo $ww; ?>); // didnt work , its something syntax error
implode
返回一个字符串,因此json_encode
编码是很自然的。 它无法识别已经作为字符串传递的类似于JSON的数据。
如果要获取对象,则必须将关联数组传递给json_encode
:
$foo = array(
1 => 4,
7 => 11,
15 => 11
);
echo json_encode($foo); // {1:4,7:11,15:11}
在$wage
崩溃之前,关于$wage
信息很少,因此很难确切地说出您想要得到什么。 该结构( [1,4],[7,11],[15,11]
)如何成为对象? 每个元组的第一个元素是键吗? 这就是我在示例中所假设的,但是可能不正确。
一种。 您会收到语法错误,因为您需要将字符串用引号引起来,如下所示:
var age = JSON.parse("<?php echo $ww; ?>");
湾 而且,您不需要 JSON.parse
。 您可以在服务器端对php var进行json_encoded后,直接对其进行回显:
var age = <?php echo $ww; ?>;
JSON.parse可以将JavaScript字符串转换为对象。 对于PHP字符串,一旦将其构建为JSON,则在正确的位置回显等同于自己进行编码。
var age = [<?php echo $age; ?>];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.