2016-03-27 121 views
2

我將php json對象保存在jQuery變量中。將php json對象保存到jQuery變量中

<?php 
$arr = array(); 
for ($i = 0; $i < 5; $i++) { 
    $arr[] = array('id'=>$i, 'text'=>$i); 
} 
$arr = json_encode($arr); 
?> 
<input id="phpObj" type="hidden" value="" data-items='<?php echo $arr; ?>'> 

瀏覽器的HTML源代碼顯示

<input id="phpObj" type="hidden" data-items="[{"id":0,"text":0},{"id":1,"text":1},{"id":2,"text":2},{"id":3,"text":3},{"id":4,"text":4}]"> 

爲了讓PHP對象我就是這麼做的

var data = jQuery.parseJSON($('#phpObj').data('items')); 
console.log(data); 

,但我有這個錯誤

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data 

我試着使用jQuery.parseJSON(JSON.stringify($('#phpObj').data('items'))); 但沒有成功。 SyntaxError: unterminated string literal

我該如何解決這個問題?謝謝

+0

直接做到這一點: - ?'VAR數據= $ .parseJSON(「');' –

+0

或'

回答

1

爲你工作的示例: -

<?php 
$arr = array(); 
for ($i = 0; $i < 5; $i++) { 
    $arr[] = array('id'=>$i, 'text'=>$i); 
} 
$arr = json_encode($arr); 
?> 
<input id="phpObj" type="hidden" data-items='<?php echo $arr; ?>'> 
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script> 
<script type = "text/javascript"> 
$(document).ready(function(){ 
var data = $.parseJSON($('#phpObj').attr("data-items")); 
console.log(data); 
}); 
</script> 

輸出: - 在我的本地屏幕: - http://prntscr.com/akrz2w

+0

非常感謝! – Gus

2

JSON字符串包含用於包裝數據值的相同類型的引號。嘗試使用單引號代替。