-1

我已经使用此代码制作json对象

if(mysql_num_rows($result)) {
    while($document = mysql_fetch_assoc($result)) {
      $documents[] = $document;
        }
  }

header('Content-type: application/json');
echo json_encode(array('documents'=>$documents));

它在这样的文档中给了我单个 json

{"document":[{"document":{"id":"2","name":"test","pages":"name","img":"path","lines":"data"}]}

但是我需要

{"document":[{"document":{"id":"2","name":"test",pages":[{"img":"first img","lines":" <p>first line"}],pages":[{"img":"second img","lines":" <p>second line"}]}]}

现有 json 中的手段需要另一个包含更多 img 和行的 json 名称页面。它可以怎么做?

4

1 回答 1

0

如果你做这样的事情:

if(mysql_num_rows($result)) {
    while($document = mysql_fetch_assoc($result)) {
      $document["pages"] = array();
      $document["pages"][] = array("img" => "first img", "lines" => "first line");
      $document["pages"][] = array("img" => "second img", "lines" => "second line");
      $documents[] = $document;
    }
}

json_encode(array('documents'=>$documents));将返回 JSON 对象,其中每个文档将包含一个页面数组,其中包含字段imglines. 基本上,您只需要在 PHP 中创建所需的结构,即可在 JSON 中获得相同的结构。

上面的代码应该返回如下内容:

{"document": [{"document" : {"id":"2",
                             "name":"test", 
                             "pages":[{"img":"first img","lines":" <p>first line"},
                                     {"img":"second img","lines":" <p>second line"}]
                            }}
              ]}
于 2013-02-14T08:38:40.873 回答