使用php创建一个json文件结构

时间:2017-09-29 16:03:49

标签: php json

任何帮助将不胜感激!

我现在已经开始了一段时间,似乎无法让这个工作。我做错了什么?

我试图使用php获取下面的JSON结构的输出。看看下面的输出的差异!

$mysqli = new mysqli('localhost','root','1234','root');
$records = array();
if ($result = $mysqli->query("SELECT * FROM users")) {

    while($row = $result->fetch_array(MYSQL_ASSOC)) {
            $records[] = $row;
    }
    $json = json_encode($records, JSON_PRETTY_PRINT);

}

   file_put_contents('records.js', $json, FILE_APPEND);

它现在输出的是什么:

[

  {
    "id": "2",
    "volume": "volume1",
    "name": "a",
    "content": "<img src="image_2.jpg">",
    "cssanimate": "bounce"
  },
  {

      "id": "2",
      "volume": "volume1",
      "name": "a",
      "content": "<img src="image_2.jpg">",
      "cssanimate": "bounce"
   },
   {

      "id": "2",
      "volume": "volume1",
      "name": "a",
      "content": "<img src="image_2.jpg">",
      "cssanimate": "bounce"
    } 

]

我想要的输出是什么:

var data = [{

  {
  tags: [{
    "id": "2",
    "volume": "volume1",
    "name": "a",
    "content": "<img src="image_2.jpg">",
    "cssanimate": "bounce"
      }]
  },
  {
    tags: [{
      "id": "2",
      "volume": "volume1",
      "name": "a",
      "content": "<img src="image_2.jpg">",
      "cssanimate": "bounce"
      }]
   },
   {
    tags: [{
      "id": "2",
      "volume": "volume1",
      "name": "a",
      "content": "<img src="image_2.jpg">",
      "cssanimate": "bounce"
      }]
    } 

}]

1 个答案:

答案 0 :(得分:2)

您在所需的输出中有一个额外的{级别无效,所以我会忽略它。要使用tags键创建对象,需要使用该键创建PHP关联数组。然后,为了使标记成为一个对象数组,您需要将该行包装在另一个数组中。

while($row = $result->fetch_array(MYSQL_ASSOC)) {
    $records[] = array('tags' => array($row));
}

我不确定为什么你需要嵌套在另一个对象和数组中的单元素数组中的每个对象,但这是一个单独的问题。