2017-06-15 9 views
1

にJSONは私のJSONです:Ionic3:私はここではイオン3</p> <p>上の配列にlaravelのAPIからJSONに変換しようとしている配列

output of the console.log

Object {id_oiseau: 1, 
    nom_commun: "Hirondelle", 
    lieu_signalement: "Foret", 
    date_signalement: "2017-05-16", 
    condition_signalement: "Aile coincee sous branche"…} 
    condition_signalement:"Aile coincee sous branche" 
    date_reception:"2017-05-16" 
    date_renvoi:"2017-05-02" 
    date_signalement:"2017-05-16" 
    descriptif_etat:"Aile cassee" 
    etat_actuel:"En attente de livraison" 
    id_acteur:1 
    id_adherent_lpo:1 
    id_local_lpo:1 
    id_oiseau:1 
    id_oiseau_dico:1 
    id_statut_oiseau:1 
    image:"bird-profil.jpg" 
    immatriculation:"EZ654ERRZ" 
    lieu_signalement:"Foret" 
    nom_codifie:"HIRON-NANT-4949845" 
    nom_commun:"Hirondelle" 
    pays:"France" 

ここれます

export class BirdService { 

    returnedData; 
    headers: any; 
    options: any; 

    constructor(public http: Http) { 
     this.headers = new Headers(); 
     this.headers.append('Content-Type', 'application/json'); 
    } 

    getRemoteData(): Observable<any> { 
     return this.http.get('http://extranet.local/api/v1/bird/1', this.headers).map(res => res.json()); 
    } 
} 

JSONを0123に変換する機能は次のとおりです。

export class HistoryPage { 

    constructor(public navCtrl: NavController, public serviceOne: BirdService) {} 

    ionViewDidLoad() { 

     this.serviceOne.getRemoteData().subscribe(
      data => { 
       let list: History[] = data; 
       console.log(data); 
     }); 
    } 
} 

とJSONでJSONファイルステーので、それは動作しません " "オブジェクト{..::.. .. ..}"

は、私はjQueryを使ってparseJSONと試みたが、私が持っていましたプロパティ 『角度

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { jQuery } from 'jquery'; 


@Component({ 
    selector: 'page-History', 
    templateUrl: 'History.html' 
}) 

export class HistoryPage { 

    constructor(public navCtrl: NavController, public serviceOne: BirdService) {} 

    ionViewDidLoad() { 

     this.serviceOne.getRemoteData().subscribe(
      data => { 
       var History = angular.fromJson(data); 
       console.log(History); 
     }); 
    } 
} 
import { jQuery } from 'jquery'; 

@Component({ 
    selector: 'page-History', 
    templateUrl: 'History.html' 
}) 

export class HistoryPage { 

    constructor(public navCtrl: NavController, public serviceOne: BirdService) {} 

    ionViewDidLoad() { 

     this.serviceOne.getRemoteData().subscribe(
      data => { 
       var History = jQuery.parseJSON(data); 
       console.log(History); 
     }); 
    } 
} 

はまた、私は名前を見つけることができませんfromJsonなく、イオンとアンギュラ使用

』未定義の「parseJSON」を読み取ることができません助けてくれてありがとう!

+0

'console.log(data)'の出力は何ですか? –

+0

私は出力を編集したばかりです – TuxxyDOS

+0

画像の代わりにテキストを追加できますか? –

答えて

0

JSON.parse()メソッドを使用してください。

解析するために他のライブラリをインポートする必要はありません。

あなたのコードは以下のようになります。

ionViewDidLoad() { 

     this.serviceOne.getRemoteData().subscribe(
      data => { 
       var History = JSON.parse(data); 
       console.log(History); 
     }); 
    } 
+0

あなたのレスポンスに感謝します。エラーがあります:JSONの1位の予期しないトークンo – TuxxyDOS

+0

JSONが無効。JSONが有効であることを確認してください。それから、解析関数だけが関数を処理します。 –

+0

私のポストにJSONを追加しました。私のJSONは大丈夫だと思います。 – TuxxyDOS

0

あなたはsubscribeでJSONを解析する必要はありません。 これはあなたがmapの機能でそれをやっているからです。map(res => res.json())

  let list: History[] = data; 

あなたのデータはオブジェクトではなく、ここで配列であるので、これは動作しません。あなたはそのようなオブジェクトからコンテンツを取得することができます

 var history = data; 

ただやる再び

console.log(history.nom_commun); 
+0

他のページで自分のデータを使用するにはちょうどこの方法を使用することができます:* ngFor = "履歴をlet; i =インデックス"

{ {h.nom_commun}}

? – TuxxyDOS

+0

あなたは配列を取得していませんが、forループで動作しない単一のオブジェクトがあります。 –

0

感謝しかし、私は

History.push(data); 
をした、

を別の方法を見つけました

配列内のオブジェクトでは、データを使用する角度のある私のシステムはこれでうまくいくようです。

関連する問題