javascript - PHP json_encode 与 JAVASCRIPT JSON.parse

标签 javascript php json

如果我在 PHP 中创建一个像这样的 json:

          if ( ($result = mysqli_query($link, $sql))  && (mysqli_affected_rows($link)!==0) )  {
                 $entries = array();
                 while ($row = mysqli_fetch_assoc($result)) {
                        $entries[] = $row;
          }
          $data = json_encode($entries);
          echo($data);

我会得到这个结果:

[   
    {"id":"100043","title":"Mini for Sale","session":"1407456000","totalViews":"0"},
    {"id":"100000","title":"test","session":"1408366541","totalViews":"4"},
    {"id":"100001","title":"Le Cappa","session":"1408377143","totalViews":"0"},
    {"id":"100002","title":"Le Cappa","session":"1408378069","totalViews":"0"},
    {"id":"100003","title":"test","session":"1408378833","totalViews":"0"}
]

如果我使用 JavaScript 执行此操作:console.log("jsondata: ", JSON.parse(data));

(其中 data 是上面的 json:data = [{"id ... )

我会得到这个结果:

jsondata: [
 Object { id="100043", title="Mini for Sale", session="1407456000", mehr...},
 Object { id="100000", title="test", session="1408366541", mehr...},
 Object { id="100001", title="Le Cappa", session="1408377143", mehr...},
 Object { id="100002", title="Le Cappa", session="1408378069", mehr...},
 Object { id="100003", title="test", session="1408378833", mehr...}]

我的问题:为什么这是不同的,我如何使用 PHP 获取带有 javascript 之类的对象的 json?

更多信息:我正在尝试使用可动态插件实现一个表。仅当我再次使用 JSON.parse 传递 PHP 发送的数据时,它才有效。这对我来说意味着 PHP-json 是错误的。

 $.ajax({
  url: 'http://huntinggrounds.de/stats/test.php',
  success: function(data){  console.log("data: ",data);     console.log("jsondata: ", JSON.parse(data));
    $('#my-final-table').dynatable({
      dataset: {
        records: JSON.parse(data)
      }
    });
  }
});

以下是从控制台复制的展位结果。

data: [{"id":"100043","title":"Mini for Sale","session":"1407456000","totalViews":"0"},{"id":"100000","title":"test","session":"1408366541","totalViews":"4"},{"id":"100001","title":"Le Cappa | Franco Gravante","session":"1408377143","totalViews":"0"},{"id":"100002","title":"Le Cappa | Franco Gravante","session":"1408378069","totalViews":"0"},{"id":"100003","title":"test","session":"1408378833","totalViews":"0"}]

jsondata: [Object { id="100043", title="Mini for Sale", session="1407456000", mehr...}, Object { id="100000", title="test", session="1408366541", mehr...}, Object { id="100001", title="Le Cappa | Franco Gravante", session="1408377143", mehr...}, Object { id="100002", title="Le Cappa | Franco Gravante", session="1408378069", mehr...}, Object { id="100003", title="test", session="1408378833", mehr...}]

最佳答案

您在控制台中看到的是内存中实际 Javascript 对象的交互式调试表示。 Is 不是 JSON。您的 PHP 输出已经是该 Javascript 对象的完美 JSON 表示。

关于javascript - PHP json_encode 与 JAVASCRIPT JSON.parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460442/

相关文章:

javascript - DataTables循环遍历表并删除特定列中包含特定字符串的所有行

php - 使用 PDO 连接到 Sphinx

版本升级后PHP fatal error

php - sql : How to check a zipcode is exist in zipcode range

Javascript 不会在按下回车键时提交,它只是清除文本框

javascript - 嵌入式 react 组件未在 html 页面中呈现/加载。 (网络包/通天塔)

javascript - 将 Javascript 添加到自定义语言 - ACE 编辑器

javascript - 使用 JavaScript 解析来自外部站点的 json

javascript - 为什么 html 文件在bundle.js 中看不到函数?

javascript - 如何比较完整的 JSON 并将其绑定(bind)到另一个 JSON