【问题标题】:How to make a dynamic json list/array with database values如何使用数据库值制作动态 json 列表/数组
【发布时间】:2015-11-29 12:19:37
【问题描述】:

我正在尝试制作一个 json 列表以用于我正在忙的练习应用程序。 应该是这样的

 {
    "title": "District 9",
    "image": "http://api.androidhive.info/json/movies/2.jpg",
    "rating": 8,
    "releaseYear": 2009,
    "genre": ["Action", "Sci-Fi", "Thriller"]
},<---comma is present here
{
    "title": "Transformers: Age of Extinction",
    "image": "http://api.androidhive.info/json/movies/3.jpg",
    "rating": 6.3,
    "releaseYear": 2014,
    "genre": ["Action", "Adventure", "Sci-Fi"]
}

这是我目前使用的代码

<?php
        require '../../scripts/connect.php';

        $y="";
        $book ="";
        if($result = $db->query("SELECT * FROM posts") or die ($db->error)){
      if($count = $result->num_rows) {
             while($row = $result->fetch_object()){


        $y .= json_encode(array(
            "title"=> $row->title,
            "image"=>"http://www.mywebsite.com/posts/img/" . $row->id. ".jpg",
            "rating"=> $row->rating,
            "releaseYear"=> $row->date_added,
            "genre"=> [$row->category, $row->subcategory]

    ), JSON_PRETTY_PRINT);


      }
    }
    }
    echo '[' .$y. ']';


    ?>

但是我明白了……因此各个数组不被逗号分隔

[
{ "title": "This is a test",
 "image": "http:\/\/www.mywebsite.com\/posts\/img\/1.jpg",
 "rating": 8.7,
 "releaseYear": "2015-09-02 02:19:10",
 "genre": [ "genre", "genre" ]
 }<---no comma here is the problem
{ 
"title": "This is another test",
"image": "http:\/\/www.mywebsite.com\/posts\/img\/1.jpg", 
"rating": 7.7,
"releaseYear": "2015-09-03 02:19:10", 
"genre": [ "genre", "genre" ] 
}
]

我的问题是如何添加逗号来分隔此实例中的每个 json 对象。谢谢

【问题讨论】:

    标签: php arrays json dynamic


    【解决方案1】:

    你真正json_encode() 唯一的东西是单本书数组。因为您只是将所有这些JSON 粘贴在彼此后面,所以没有为您添加逗号。

    您应该将所有书籍放在一个数组中,json_encode() 整个书籍数组,而不是手动添加逗号。

    这确保您在整个输出中具有正确的JSON

    示例

    $books = []; // I renamed $y to $books, seems clearer.
    $book = ""; // This doesn't do anything remove it.
    if($result = $db->query("SELECT * FROM posts") or die ($db->error)){
        if($count = $result->num_rows) {
            while($row = $result->fetch_object()){
            $books[] = [
                    "title"       => $row->title,
                    "image"       =>"http://www.mywebsite.com/posts/img/" . $row->id. ".jpg",
                    "rating"      => $row->rating,
                    "releaseYear" => $row->date_added,
                    "genre"       => [$row->category, $row->subcategory]
                ];
            }
        }
    }
    echo json_encode($books, JSON_PRETTY_PRINT);
    

    【讨论】:

      猜你喜欢
      • 2016-07-20
      • 2013-04-25
      • 1970-01-01
      • 2016-09-29
      • 2016-05-08
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多