Website-Suche

typescript - Eine JSON-Antwort in Angular 2 analysieren


Weiß jemand, wie ich eine JSON-Antwort in eine Struktur wie diese parsen kann?

   [
  {
    "iD": 2,
    "OrderList": [
      {
        "bidPrice": 0,
        "iD": 0,
        "name": "Name",
        "price": 10,
        "resteurant": "Restaurant"
      },
      {
        "bidPrice": 0,
        "iD": 0,
        "name": "Something",
        "price": 20,
        "resteurant": "La Place"
      }
],
    "owner": "Tom"
  }
]

Ich habe json2ts verwendet, um diese beiden Strukturen zu erstellen:

  import {OrderList} from "./OrderList.ts";
import {Injectable} from  "@angular/core";

@Injectable()

export interface OrderBasket {
    iD: number;
    OrderList: OrderList[];
    owner: string;
}

und

import {Injectable} from  "@angular/core";

@Injectable()
export interface OrderList {
    bidPrice: number;
    iD: number;
    name: string;
    price: number;
    resteurant: string;
}

Ich rufe den Server auf und abonniere, aber ich kann diese Struktur nicht erhalten. Kann mir jemand helfen?

Antwort #1

Ich denke, dass du Folgendes ausprobieren könntest:

this.http.get('http://...')
  .map(res => <OrderBasket[]>res.json())
  .subscribe(data => {
    // data corresponds to a list of OrderBasket
  });

Du musst dir der Auswirkungen von Typumwandlungen in TypeScript bewusst sein:

  • Wie castet man ein JSON-Objekt in eine TypeScript-Klasse

Ansonsten verstehe ich nicht, warum du den Injectable-Dekorator auf deinen Schnittstellen verwendest.