首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法json_decode从我的php网络服务收到的输出?

无法json_decode从我的php网络服务收到的输出?
EN

Stack Overflow用户
提问于 2011-07-25 16:25:47
回答 2查看 972关注 0票数 0

Webservice代码:

代码语言:javascript
复制
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);
        }

来自客户端的代码:

代码语言:javascript
复制
$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

我得到了以下输出:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2011-07-25 16:30:21

这一点:

代码语言:javascript
复制
echo $arr[0]->username;

应该是:

代码语言:javascript
复制
echo $arr[0]['username'];

还有这个:

代码语言:javascript
复制
$arr = array();
while($obj = mysql_fetch_object($sql)) {
  $arr[] = $obj;
}

应该是:

代码语言:javascript
复制
$arr = array();
while($row = mysql_fetch_assoc($sql)) {
  $arr[] = $row;
}

你不能通过json发送php对象。在php中,javascript (和json)称之为对象的是一个关联数组。

票数 3
EN

Stack Overflow用户

发布于 2011-07-25 18:50:40

替换: echo $arr->用户名;替换为$arr;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6813383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档