javascript - 了解当一个对象列表已经是 json 格式时,如何通过 json_encode 返回两个对象列表

标签 javascript php jquery json

我正在使用 ajax 获取帖子的 facebook 评论,因此以下 php 函数代码通过 json 编码将数据返回给 ajax 调用。

echo json_encode(array($JsonData,$arr2));
die(); 

但是 $JsonData 中的内容已经是 json 格式,因为我在该 php 函数中使用服务器端图形 API 调用获取 facebook 帖子的评论数据,并在 echo 之前首先分配给 $JsonData。

但是在ajax成功函数上我没有获取数据。

success:function (data, textStatus, XMLHttpRequest) {
               var comments=data[0].data;
                   alert(comments);   //shows something undefined

(因为当我单独以这种方式获取数据时,我仅在 php 函数中返回评论数据,这样 echo $JsonData; 并在成功函数 comments=data.data 中)

所以现在我必须通过ajax调用获取另一个数组$arr2,因此使用json_encode(array($JsonData,$arr2))返回数据不起作用。由于 $JsonData 已经是 json 格式,因此在服务器端进行 json 编码可能会导致问题。

但是如果我使用 jquery json 解析如下 jQuery.parseJSON(data[0]);然后我妨碍了 comments=jQuery.parseJSON(data[0]).data。

考虑到parseJson是否不适用于所有jquery版本,当$JsonData已经是json格式时,还有什么其他方法可以避免服务器端返回代码中的json_encode耗时调用并使事情成功运行。仅供引用,我使用了“json”作为 ajax 调用中的数据类型。

最佳答案

一种方法是在与其他数据组合之前先解码 json:

echo json_encode(array(json_decode($JsonData),$arr2));

或者甚至像这样构建自己的 json:

回显'['。 $JsonData . ','。 json_encode($arr2) 。 ']';

这将回显一个包含 2 个对象的数组。

关于javascript - 了解当一个对象列表已经是 json 格式时,如何通过 json_encode 返回两个对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201486/

相关文章:

javascript - 如何在单个查询中选择多个文档引用?

javascript - SpiderMonkey 对比 JavaScriptCore 对比?

javascript - JS从键盘事件中读取变量

PHP - 用 openssl_random_pseudo_bytes() 替换 mcrypt_create_iv()

php - 文本框的可见性取决于组合框的值

javascript - Slickgrid,带有下拉选择列表的列?

php - 覆盖 SonataUserBundle 的 ProfileFormType

javascript - 在 jQuery 中检索 DataTable 行的单个单元格数据

jquery - 如何使用 jQuery 在第二次单击时反转 CSS 动画

JavaScript 每次点击时增加++ 不透明度