繁体   English   中英

json返回字符串而不是对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM