0

我看了这个教程

并尝试创建我自己的 php 端脚本来生成 json 数据。

但是,我未能创建多级数组。

在示例中,一个 json 结果为

{
  "nextId": null,
  "items": [{
          "title": "Docker, the Linux container runtime: now open-source",
          "url": "http://docker.io",
          "id": 5445387,
          "commentCount": 39,
          "points": 146,
          "postedAgo": "2 hours ago",
          "postedBy": "shykes"
      }, {
          "title": "What\u0027s Actually Wrong with Yahoo\u0027s Purchase of Summly",
          "url": "http://hackingdistributed.com/2013/03/26/summly/",
          "id": 5445159,
          "commentCount": 99,
          "points": 133,
          "postedAgo": "2 hours ago",
          "postedBy": "hoonose"
      },
  ],
  "version": "1.0",
  "cachedOnUTC": "\/Date(1364333188244)\/"
}

生成后,我可以$resultJSON= json_encode($resultArray);用来生成内部级别,即标题、url、id 等,但不是“项目”对象。我想知道,items对象是来自表名还是通过对数组中生成的数组数据进行编码而创建的?我使用此 php 文件中编码为 json 的数据:

$query = "SELECT user_id, username, legacy_id, date_created
FROM eq_user";
$result = mysqli_query($connection, $query);
$numRows = mysqli_num_rows($result);
$resultArray = mysqli_fetch_assoc($result);
$resultJSON= json_encode($resultArray);
echo $resultJSON;

emberjs 应用程序会像

App.Item.reopenClass({
  all: function() {
      return $.getJSON("/get_data.php").then(function(response) {
        var items = [];                     
        response.items.forEach( function (item) {
          items.push( App.Item.create(item) );
        });

          return items;
      });
  }
});

注意:项目是我认为的对象,但我不知道如何在 php 中正确生成它作为 json 数据作为多级数组。

另外,还有一个问题,我应该使用 json_encode 还是不使用?因为我看到教程提到 Emberjs 使用 jsonp ......它是一种特殊的格式吗?我应该如何在 PHP 中处理这个 jsonp?

谢谢!

4

1 回答 1

3

你可以简单地做

 $resultArray = array();
 while ($row = mysqli_fetch_assoc($result)) {
    $resultArray[] = $row;
 }

 $resultJSON= json_encode(array("items"=>$resultArray));

祝你好运

于 2013-11-05T14:47:51.907 回答