将php-json对象保存到jquery变量中


Save php json object into jquery variables

我会获取一个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

我该如何解决这个问题?感谢

JSON字符串包含用于包装数据值的相同类型的引号。尽量使用单引号。

一个适用于您的示例:-

<?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