-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));imgは、各ドキュメントにフィールドおよびを持つページの配列が含まれる JSON オブジェクトを返しますlines。基本的に、必要な構造を 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 に答える