2013-02-21 202 views
2

我有這個我在Firebug的控制檯上,將JSON對象轉換爲數組?

[Object { fa_id="1167535", f_id="1000", loc_type="6", more...}, Object { fa_id="1167535", f_id="1000", loc_type="6", more...}] 

它是從服務器端的數據。現在,我將如何將其轉換爲數組,以便這些數據可以在另一個文件上使用。我試過JSON.parsejQuery.parseJSON,但都沒有奏效。

+3

你的標籤稍微混淆問題。你想用JavaScript還是PHP把它變成一個數組? – BenM 2013-02-21 18:44:20

+0

再次令人困惑.. JavaScript或PHP? – 2013-02-21 18:48:31

+0

您沒有JSON。 JSON是數據的*字符串表示形式,恰好可以與JavaScript共享語法。你有一組對象,你想用它做什麼? – 2013-02-21 18:48:46

回答

5

這不是JSON,它是一個對象的Javascript數組,而不是一個字符串。我的猜測是,你已經從jQuery ajax調用中收到了這個消息,並且設置了dataType : 'json'集,以便jQuery自動將JSON解析到此數組中。

使用它發送到PHP腳本,你可以將其轉換回JSON:

var myString = JSON.stringify(data); 

,然後火了一個AJAX調用PHP腳本與作爲POST數據:

var myString = JSON.stringify(data); 
$.post('page.php', { data : myString }, function(){ 
    console.log("sent"); 
}); 

在PHP中,你可以使用其解碼:

$data = json_decode($_POST['data']); // <-- or whatever your post variable is named 

foreach($data as $obj) 
{ 
    echo $obj->fa_id; 
} 
+0

其實你是對的。那麼我怎麼才能把它變成PHP中的一個對象數組呢? – 2013-02-21 18:50:20

+0

@CHiRiLo看我的編輯。基本上你可以將它轉換回字符串,然後將其轉換爲PHP,然後在PHP端進行解碼。 – MrCode 2013-02-21 18:54:30

+0

您可以放棄'JSON.stringify',只需執行'$ .post('page.php',{data:data})''。 '$ _POST ['data']'然後就是一個數組數組。 – 2013-02-21 18:59:30

0

您提供的字符串不是有效的JSON。

[Object { fa_id="1167535", f_id="1000", loc_type="6", more...}, 
Object { fa_id="1167535", f_id="1000", loc_type="6", more...}] 

特別地,「Object」和「more...」字符串不能被一個JSON解析器解釋。

假設你正在檢查的對象是一個變量命名foo

console.log(JSON.stringify(foo)); 

如果打印對象的有效JSON表示給Javascript控制檯。