我有
$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
答案 0 :(得分:2)
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
在崩溃之前的样子信息如此之少,很难准确说出你想得到什么。该结构([1,4],[7,11],[15,11]
)如何成为对象?每个元组的第一个元素是关键吗?这就是我用我的例子所假设的,但可能是关闭的。
答案 1 :(得分:1)
一个。您会收到语法错误,因为您需要将字符串括在引号内,如下所示:
var age = JSON.parse("<?php echo $ww; ?>");
湾此外,您不需要 JSON.parse
。你可以简单地在服务器端已经json_encoded之后回显php var:
var age = <?php echo $ww; ?>;
JSON.parse用于将 JavaScript 字符串转换为对象。对于PHP字符串,一旦它被构建为JSON,在正确的位置回显它就相当于自己编写。
答案 2 :(得分:1)
var age = [<?php echo $age; ?>];