PHP数组用json_encode发送jquery,然后在输入字段中插入数组值


php array with json_encode send jquery, then insert array values in input fields

有这样的php数组

Array
(
[Title] => Text for title  
[Description] => Text for: description.
)

然后从php用echo json_encode($meta_back, JSON_HEX_QUOT|JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS);返回jquery

在jquery中使用alert查看这个

{"Title":"Text for title  ","Text for: description."}
然后

$.each( [ meta_from_url ], function( title, description ) {
alert( 'title_ ' + title + ' description_ ' + description );
});

And with alert见

title_ 0 description_ {"Title":"Text for title  ","Description":"Text for: description."}

我的代码中有什么不正确的?标题为0,整个数据在description

为什么要在对象的属性上循环?直接访问

alert( 'title_ ' + meta_from_url.Title + ' description_ ' + meta_from_url.Description );

您的代码是正确的,并且运行正常。

$.each( [ meta_from_url ], function( title, description ) {
alert( 'title_ ' + title + ' description_ ' + description );
});

数组的标题是KEY,描述是VALUE。第一个条目的KEY值为0。因此它打印的是0。

你需要的是:

$.each( [ meta_from_url ], function( title, description ) {
alert( 'title_ ' + description.Title + ' description_ ' + description.Description );
});

像这样使用

var data = $.parseJSON( meta_from_url );
alert( 'title_ ' + data.Title + ' description_ ' + data.Description );

您的$.each回调期望(索引,对象)作为参数。不是两根弦。这就是为什么title_0(索引),description_是整个对象的字符串表示。