【问题标题】:php - convert mysql data into json objectphp - 将 mysql 数据转换为 json 对象
【发布时间】: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 对象的最佳方法是什么

【问题讨论】:

  • 你希望对象的键是数字的吗?为什么还要强制一个对象?

标签: php mysql arrays json codeigniter


【解决方案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]);
      

      【讨论】:

        猜你喜欢
        • 2014-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-24
        相关资源
        最近更新 更多