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

Posted

技术标签:

【中文标题】php - 将 mysql 数据转换为 json 对象【英文标题】:php - convert mysql data into json object 【发布时间】:2017-05-04 02:58:52 【问题描述】:

我使用 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 对象的最佳方法是什么

【问题讨论】:

你希望对象的键是数字的吗?为什么还要强制一个对象? 【参考方案1】:

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

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

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

【讨论】:

点赞!这就是你真正发生的事情。如果要处理值,则需要通过 javascript 迭代该对象。【参考方案2】:

你想json_encode($data, JSON_FORCE_OBJECT)

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

参考:php Array to Json Object

【讨论】:

【参考方案3】:

您可以使用JSON_FORCE_OBJECT 参见下面的示例。

 echo json_encode($data, JSON_FORCE_OBJECT);

【讨论】:

【参考方案4】:

假设您只从查询中返回一行。

改变

echo json_encode($data);

echo json_encode($data[0]);

【讨论】:

以上是关于php - 将 mysql 数据转换为 json 对象的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 数据从 PHP 到带有 JSON 的 Javascript

PHP mySql 数据到 JSON 文件

将 PHP 数组转换为对象的 JSON 数组

使用 PHP 从 MySQL 结果输出复杂的 JSON

PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决

通过iOS应用程序将数据从json(php webservice)修改为mysql