我有一些信息從PHP傳遞到JavaScript(不是AJAX調用)來初始化一些動態內容。JSON是否解析?
在服務器端我
echo 'var ' . $controlID . '_json = JSON.parse(\'' . $control->getOptions() . '\');';
其中$控制 - > getOptions是
public function getOptions() {
//some code to build an array here
return json_encode($somearray);
}
這會導致JavaScript代碼的瀏覽器
var ControlName_json = JSON.parse('/*JSON OUTPUT HERE */');
現在以下,這會產生出於某種原因的錯誤。 (錯誤,意外的令牌a)。我查了一下,我用的瀏覽器有JSON。 然而,這樣沒有問題:
echo 'var ' . $controlID . '_json = ' . $control->getOptions() ';';
這有什麼錯作爲對象直接分配變量?不知怎的,這可能會在路上'破壞'javascript嗎?
爲了完整性,導致問題的特定JSON在下面,但是由於它是由json_encode創建的,我不確定它是否重要。
{"o0":[{"text":"aguapop","value":"aguapop","selected":false,"parentID":0,"attributes":" value=\"aguapop\""},{"text":"default","value":"default","selected":false,"parentID":0,"attributes":" value=\"default\""},{"text":"fluid","value":"fluid","selected":false,"parentID":0,"attributes":" value=\"fluid\""},{"text":"fresh","value":"fresh","selected":false,"parentID":0,"attributes":" value=\"fresh\""},{"text":"gel","value":"gel","selected":false,"parentID":0,"attributes":" value=\"gel\""},{"text":"professional","value":"professional","selected":false,"parentID":0,"attributes":" value=\"professional\""},{"text":"professional-rtl","value":"professional-rtl","selected":false,"parentID":0,"attributes":" value=\"professional-rtl\""},{"text":"silverwolf","value":"silverwolf","selected":false,"parentID":0,"attributes":" value=\"silverwolf\""},{"text":"wood","value":"wood","selected":false,"parentID":0,"attributes":" value=\"wood\""}]}
我沒有在你的php中看到json_decode()函數。但我看到json.parse()這不是如何解碼php中的JSON對象。也許我只是誤讀? – KevBot
我不需要解碼PHP中的json。 PHP正在向javascript發送關聯數組,但是JSON.parse()會在輸出中引發錯誤。我是否需要使用JSON.parse(),還是可以原生地發送它? – serakfalcon