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();好的,我来修。非常感谢你。