如何读取离子3中json对象中属性的值

时间:2018-04-23 23:06:07

标签: json angular ionic3

我正在使用离子3中的一个项目,我正在尝试使用php和mysql在我的应用程序中执行登录功能。但我从json对象读取数据时遇到问题来说明情况, 我有一个名为" user"在我的数据库中,我用php获取了所有记录,并将它们显示为json格式,如下所示:

sys.exit

php code

我得到了这个结果:

<?php
header("Access-Control-Allow-Origin: *");
include ("cnx.php");
$query="select * from ionic_test ";
$result=$cnx->query($query);

$rs['user']=[];
while($record=$result->fetch(PDO::FETCH_ASSOC)){
  $rs['user'][]=$record;
}
echo json_encode($rs);

所以,在我的离子项目中,我创建了一个服务,它将连接到php页面并从中获得上面显示的结果:

 {"user":[{"user":"abdel","pwd":"abdel"}]}

service

现在,当我尝试读取httpClint请求返回的数据时,我遇到了问题,我实际上并不知道如何访问该数据,我已经尝试了很多方法来阅读它但没有主题适合我,我总是得到&#34; undefined&#34;结果:

@Injectable()
export class AuthProvider {
  private url:string
  constructor(public http: HttpClient) {
  this.url='http://localhost/ionic%20login/api.php'
  }

  getusers(){
   return this.http.get(this.url)
  }

我想从json对象读取的数据是:

the data that i want to read from json object

我希望这很清楚,足以说明我的问题,如果有人能帮助我解决这个问题,我将感激不尽。

使用ionic 3 php和mysql进行登录功能的任何建议或方法也很受欢迎。

1 个答案:

答案 0 :(得分:1)

您可以告诉HttpClient响应的类型,使输出更容易,更明显。

可以使用类型参数

来完成响应的类型检查
 export interface Response {
      user: string;
      pwd: string;

    }

Http返回observable我们可以告诉HttpClient.get返回response作为响应类型当我们使用http.get<Response[]>(...)时,它会返回{的实例{1}}类型。
在您的服务中

Observable<Response[]>

在您的组件中订阅 import { Observable } from 'rxjs/Observable'; import {Response} from './responseModel' @Injectable() export class AuthProvider { private url:string constructor(public http: HttpClient) { this.url='http://localhost/ionic%20login/api.php' } getusers()Observable<Response[]>{ return this.http.get<Response[]>(this.url) } 以获取响应的实例

Observable<Response>