反斜杠是在json_encode之后添加到数组的url

时间:2018-02-14 09:31:24

标签: php android codeigniter

实际上我使用php codeigniter作为服务器端语言。所以当我尝试使用 json_encode 将数组发送到Android应用程序时,每次在 user_image url中添加不需要的反斜杠,但数组的其他数据保持不变。

这是我的php codeigniter控制器代码。

class Groups extends CI_Controller
{
    public function groupmember()
    {
        $this->load->model("Groups_Model");
        $data['memberlist']=$this->Groups_Model->groupmemberlist($this->input->post('user_id'));
        //die(print_r($data));
        if($data!=null)
        echo json_encode($data,JSON_UNESCAPED_SLASHES);
    }
}

这是我的php codeigniter模型代码。

class Groups_Model extends CI_Model
{
   public function groupmemberlist($session_id)
   {
       $this->load->database();
        $this->db->select("*");
        $this->db->from("circle");
        $where = "sender_id='".$session_id." AND request_status=1 ' OR receiver_id='".$session_id."' AND request_status=1";
        $this->db->where($where);
        $query =$this->db->get();
        foreach($query->result_array() as $row)
        {
            if($row['sender_id']==$session_id)
            {
                $data[]=$this->friendlist($row['receiver_id']);
            }
            else
            {
                $data[]=$this->friendlist($row['sender_id']);
            }
        }

        if(!empty($data))
        return $data;
   }
   function friendlist($userid)
   {
      $this->load->database();
      $this->db->select('*');
      $this->db->from('users');
      $this->db->where('auth_id',$userid);
      $query=$this->db->get();
      return $query->result_array();
   }
}

这就是我在android中获得响应的方式。

[
    [{
        "user_id": "7",
        "auth_id": "109236658041750871608",
        "full_name": "Abdullah Khaled",

        "email_id": "abdullahkhaled604@gmail.com",

        "image_url": "https:\/\/lh5.googleusercontent.com\/-G9ZMVsph4no\/AAAAAAAAAAI\/AAAAAAAAAAA\/ACSILjX8pu4sXdCmwpUrFTgcRjXT4iwD-w\/s96-c\/photo.jpg"
    }]
]

并在获得此响应活动后关闭。

我也尝试在android端替换反斜杠,但它对我不起作用。

下面的代码我试图替换android中的反斜杠。

String myUrl = json_date.getString("image_url");
        //myUrl = myUrl.replaceAll("\\\\", "");

我被困了两天所以请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试更换:

echo json_encode($data,JSON_UNESCAPED_SLASHES);

echo str_replace('\/','/',json_encode($data));

答案 1 :(得分:0)

试试这个

     $str = 'https://lh5.googleusercontent.com/-G9ZMVsph4no/AAAAAAAAAAI/AAAAAAAAAAA/ACSILjX8pu4sXdCmwpUrFTgcRjXT4iwD-w/s96-c/photo.jpg';
     $str_encode = json_encode($str);
     $str_decode = json_decode($str_encode ,TRUE);
     echo $str_encode .'<br>' ;
      echo $str_decode;