我使用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对象的最佳方法是什么
答案 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输出为对象,即使它通常表示为数组。
答案 2 :(得分:1)
您可以使用JSON_FORCE_OBJECT查看以下示例。
echo json_encode($data, JSON_FORCE_OBJECT);
答案 3 :(得分:-1)
假设您只从查询中获得一行。
变化
echo json_encode($data);
到
echo json_encode($data[0]);