Codeigniter到json错误修复
我为Codeigniter到json错误修复,json,codeigniter,Json,Codeigniter,我为JSONapi编写了一个简单的代码,如下所示: <?php class Json extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url_helper'); $this->load->database(); }
JSON
api编写了一个简单的代码,如下所示:
<?php
class Json extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
$this->load->database();
}
public function index()
{
$user = $this->db->get('user');
echo '{"user": [';
foreach ($user->result() as $row)
{
echo "{";
echo '"name" : "'. $row->user;
echo '", "password" : "'. $row->password;
echo '", "email" : "'. $row->email;
echo '"},';
}
echo ']}';
}
}
问题在于逗号的重复。请帮助修复此错误。在对象前加逗号,第一个除外:
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
$this->load->database();
}
public function index()
{
$user = $this->db->get('user');
$index = 0;
echo '{"user": [';
foreach ($user->result() as $row)
{
if (!($index++)) echo ",";
echo "{";
echo '"name" : "'. $row->user;
echo '", "password" : "'. $row->password;
echo '", "email" : "'. $row->email;
echo '"}';
}
echo ']}';
}
}在对象前加逗号,第一个逗号除外:
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
$this->load->database();
}
public function index()
{
$user = $this->db->get('user');
$index = 0;
echo '{"user": [';
foreach ($user->result() as $row)
{
if (!($index++)) echo ",";
echo "{";
echo '"name" : "'. $row->user;
echo '", "password" : "'. $row->password;
echo '", "email" : "'. $row->email;
echo '"}';
}
echo ']}';
}
}json\u encode将标准php数组转换为json。就像我说的,你打给db的电话在我看来是错误的,但它似乎没有给你一个错误,所以我不知道那里发生了什么。但在我看来,情况应该是这样的:
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
$this->load->database();
}
public function index()
{
$query = $this->db->get('user');
$user = $query->result_array();
echo json_encode($user);
}
除了我关于如何获取数据的问题外,如果可以将$user转换为标准key=>value数组,那么json_encode()函数将完成其余工作。json_encode将标准php数组转换为json。就像我说的,你打给db的电话在我看来是错误的,但它似乎没有给你一个错误,所以我不知道那里发生了什么。但在我看来,情况应该是这样的:
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
$this->load->database();
}
public function index()
{
$query = $this->db->get('user');
$user = $query->result_array();
echo json_encode($user);
}
除了我关于如何获取数据的问题之外,如果您可以将$user转换为标准的key=>value数组,那么json_encode()函数将完成其余工作。您不需要像这样从查询中获取结果:$user=$this->db->get('user')->result();?首先,该代码应该真正位于模型中。第二,不需要将结果作为对象获取,只需将其作为数组传递给json_encode(),并消除foreach altogetherPacio可以获取的有关详细信息。json_encode()json_encode(['name'=>$row->user,'email'=>$row->email])。此外,您不应发送用户密码。它应该散列并存储在数据库中,永远不会被取出。您不需要像这样从查询中获取结果:$user=$this->DB->get('user')->result();?首先,该代码应该真正位于模型中。第二,不需要将结果作为对象获取,只需将其作为数组传递给json_encode(),并消除foreach altogetherPacio可以获取的有关详细信息。json_encode()json_encode(['name'=>$row->user,'email'=>$row->email])。此外,您不应发送用户密码。它应该被散列并存储在您的数据库中,永远不会被取出,也不需要放在最后。仅用于分离。@DeenJustin您实际测试过此代码吗?它应该写一些类似{“user”:[{“name”:“admin”,“password”:“abcd”,“email”:deenjustin@gmail.com},{name:“deenj”,“password:“dfgh”,“email:“deenj。effects@gmail.com"}]}. 代码将在除第一个.f(($index++)echo“,”之外的所有元素前面加一个逗号;谢谢大家。帕西奥可以透露更多的细节。json_encode()不需要放在最后一位。仅用于分离。@DeenJustin您实际测试过此代码吗?它应该写一些类似{“user”:[{“name”:“admin”,“password”:“abcd”,“email”:deenjustin@gmail.com},{name:“deenj”,“password:“dfgh”,“email:“deenj。effects@gmail.com"}]}. 代码将在除第一个.f(($index++)echo“,”之外的所有元素前面加一个逗号;谢谢大家。帕西奥可以透露更多的细节。json_encode()$user=$query->result_array();好的,我来修。非常感谢。$user=$query->result_array();好的,我来修。非常感谢你。