Codeigniter在每个输出

时间:2016-09-28 03:54:50

标签: php json web-services codeigniter php-5.6

我在PHP codeigniter框架中创建了一个返回JSON输出的API。输出看起来很好但我无法解析它:它总是给出解析错误。

在使用在线JSON解析器进行解析时,我意识到所有API输出在开头都有一个奇怪的特殊字符,无论我是返回JSON还是简单的字符串。 (见下文

this 是指向我的API的链接,我测试了JSLint上的输出

你能帮我弄清楚这个角色从何而来?

这是我的控制器代码:

public function getCleaner(){
    $mobile_no = $this->input->get('mobile');
    $pass = $this->input->get('pass');
    if(!is_null($mobile_no) && !is_null($pass))
    {
        header('Access-Control-Allow-Origin: *');  
        header('Content-Type: application/json; charset=UTF-8');
        header('x-xss-protection: 1;');
        $data = $this->cleaner_model->get_cleaner($mobile_no, $pass);
        if(!empty($data))
            echo json_encode($data);
        else 
            echo '{"cleaner_id":"-10","cleaner_name":"cleaner_not_found"}';
    }
}

这是我的型号代码:

public function get_cleaner($mobile, $pass){
     $this->db->select("*");
     $this->db->from("cleaner");
     $this->db->where("mobile1", $mobile);
     $this->db->where("user_pass", $pass);
     $data = $this->db->get()->row_array();

     return $data;
}

1 个答案:

答案 0 :(得分:1)

您用于创建JSON的方式不正确。使用以下命令获得正确的输出(在控制器的ELSE块中)

//this is WRONG
 echo '{"cleaner_id":"-10","cleaner_name":"cleaner_not_found"}';

//this is correct
$arr = array('cleaner_id' => '-10', 'cleaner_name' => 'cleaner_not_found');
echo json_encode($arr);

现在您将收到正确的数据

{"cleaner_id":"-10","cleaner_name":"cleaner_not_found"}