php - 将mysql数据转换为json对象

时间:2016-12-19 05:20:25

标签: php mysql arrays json codeigniter

我使用codeigniter。我想从数据库中检索数据并将其转换为JSON对象而不是JSON数组。我正在使用以下代码

    public function json()
 {
        $content = $this->db->get('todolist'); //todolist table name
        $data = $content->result_array();
        echo json_encode($data);
 }

上面的代码是将数据库转换为JSON数组。 输出

[{"todo_id":"1","todo_content":"Homework","date":"2016-05-05","iscomplete":null,"imagelink":"Lighthouse.jpg"},{"todo_id":"2","todo_content":"exam","date":"2015-04-21","iscomplete":null,"imagelink":"Desert.jpg"},{"todo_id":"3","todo_content":"Lab report","date":"2014-08-29","iscomplete":null,"imagelink":"FB_IMG_14700753538617403.jpg"}]

将它转换为JSON对象的最佳方法是什么

4 个答案:

答案 0 :(得分:4)

Sangam尝试理解这个概念,请检查以下一行:

$data = $content->result_array();    // $data is an array
echo json_encode($data);             // here you are converting it into an json object

您的$data数组中包含多个索引,这就是json对象在{}内有多个[]的原因;

答案 1 :(得分:2)

您想要json_encode($data, JSON_FORCE_OBJECT)

JSON_FORCE_OBJECT标志,顾名思义,强制json输出为对象,即使它通常表示为数组。

参考:PHP Array to Json Object

答案 2 :(得分:1)

您可以使用JSON_FORCE_OBJECT查看以下示例。

 echo json_encode($data, JSON_FORCE_OBJECT);

答案 3 :(得分:-1)

假设您只从查询中获得一行。

变化

echo json_encode($data);

echo json_encode($data[0]);