无法对从我的php Web服务接收的输出进行json_解码?

无法对从我的php Web服务接收的输出进行json_解码?,php,json,Php,Json,Web服务代码: function login($uname) { $id=1; $link = mysql_pconnect("localhost", "root", "root") or die("Could not connect"); mysql_select_db("sparq",$link) or die("Could not select database");

Web服务代码:

function login($uname)
        {   

            $id=1;
            $link = mysql_pconnect("localhost", "root", "root") or die("Could not connect");
            mysql_select_db("sparq",$link) or die("Could not select database");
            $sql=mysql_query("select username,password from user_login where user_id=1");
            //$result = mysql_query($query);
            $arr = array();
            while($obj = mysql_fetch_object($sql)) 
                {
                    $arr[] = $obj;
                    }
           // $obj = mysql_fetch_object($sql);
           header("Content-type: application/json");
           echo json_encode($arr);
        }
来自客户端的代码:

$url="http://localhost/web.php";
if (isset($_POST['Login']))
    {

            $ch = curl_init($url); // Initialize a CURL session
            curl_setopt($ch, CURLOPT_HEADER, 0); // options for a CURL transfer
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS,"username=".$username );
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($ch); // Perform a CURL session
            curl_close($ch); 
            $arr =array();
            $arr=json_decode($data,true);
            echo 'I am here';    //echo1
            echo $data;   //echo2

            echo $arr[0]->username; //echo3
我得到以下输出:

I am here //echo1
[{"username":"akhilnk@gmail.com","password":"asdf123"}]  //echo2
Notice: Trying to get property of non-object in F:\xampp\htdocs\webtest\login.php on line 38  //echo3
这:

应该是:

echo $arr[0]['username'];
$arr = array();
while($row = mysql_fetch_assoc($sql)) {
  $arr[] = $row;
}
这是:

$arr = array();
while($obj = mysql_fetch_object($sql)) {
  $arr[] = $obj;
}
应该是:

echo $arr[0]['username'];
$arr = array();
while($row = mysql_fetch_assoc($sql)) {
  $arr[] = $row;
}
不能通过json发送php对象。javascript(和json)调用对象的是php中的关联数组。

这是:

应该是:

echo $arr[0]['username'];
$arr = array();
while($row = mysql_fetch_assoc($sql)) {
  $arr[] = $row;
}
这是:

$arr = array();
while($obj = mysql_fetch_object($sql)) {
  $arr[] = $obj;
}
应该是:

echo $arr[0]['username'];
$arr = array();
while($row = mysql_fetch_assoc($sql)) {
  $arr[] = $row;
}

不能通过json发送php对象。javascript(和json)调用对象的是php中的关联数组。

Replace:echo$arr[0]->username;按$arr[0][“用户名”]

替换:echo$arr[0]->用户名;按$arr[0][“用户名”]

但是下面将返回未定义的常量用户名错误“\n”echo$arr[0]['username']@akhil-n-k如果您收到该错误,您忘记了
'username'
周围的引号。但它仍然没有打印username@akhil-n-k Do
print\r($arr)并发布输出。但是下面的将返回未定义的常量用户名错误“\n”echo$arr[0]['username']@akhil-n-k如果您收到该错误,您忘记了
'username'
周围的引号。但它仍然没有打印username@akhil-n-k Do
print\r($arr)并发布输出。还有一件事:我发布的初始代码在我朋友的m/c中运行良好,我得到了正确的输出通过插入var_dump($arr)告诉我你有什么;在“echo3”之前,这是因为必须使用UTF-8编码。在UTF-8和db表字段中对文件脚本进行编码,或使用$arr=json\U解码(utf8\U编码($data),true);还是没有希望。我从json_last_error()得到4作为输出。我在$arr=json_decode($data,true)行下面添加了这一点;还有一件事:我发布的初始代码在我朋友的m/c中运行良好,我得到了正确的输出通过插入var_dump($arr)告诉我你有什么;在“echo3”之前,这是因为必须使用UTF-8编码。在UTF-8和db表字段中对文件脚本进行编码,或使用$arr=json\U解码(utf8\U编码($data),true);还是没有希望。我从json_last_error()得到4作为输出。我在$arr=json_decode($data,true)行下面添加了这一点;