簡體   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