Получение данных из JSON в ионном режиме - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь получить данные из файла JSON в ионном приложении, используя.

this.http.get('https://track.delhivery.com/api/packages/json/?token=c7ac81cde31a5ea69d38cb098cab16cf7f909062&waybill=2285210000022').map(res => res.json()).subscribe(data => {
                this.trackingorder = data;
                console.log(this.trackingorder.ShipmentData);

Но я получаю сообщение об ошибке, что отгрузка не определена. Мой файл JSON имеет формат

{
"ShipmentData": [
    {
        "Shipment": {
            "Origin": "Bengaluru_Bomsndra_PC (Karnataka)",
            "Status": {
                "Status": "Delivered",
                "StatusLocation": "Cjb_Kovaipudur_Dc (Tamil Nadu)",
                "StatusDateTime": "2018-12-20T17:57:28.002000",
                "RecievedBy": "",
                "Instructions": "Delivered to consignee",
                "StatusType": "DL",
                "StatusCode": "EOD-38"
            },
            "PickUpDate": "2018-12-18T19:44:43",
            "ChargedWeight": null,
            "OrderType": "Pre-paid",
            "Destination": "Coimbatore",
            "Consignee": {
                "City": "Coimbatore",
                "Name": "Sayal Krishna",
                "Country": "India",
                "Address2": [],
                "Address3": "",
                "PinCode": 641105,
                "State": "Tamil Nadu",
                "Telephone2": "",
                "Telephone1": [
                    "8667079713"
                ],
                "Address1": [
                    "A-198,\nTamil annai street,Gandhi nagar,madukarai\nCoimbatore 641105"
                ]
            },
            "ReferenceNo": "5160",
            "ReturnedDate": null,
            "DestRecieveDate": "2018-12-20T07:56:22.518000",
            "OriginRecieveDate": "2018-12-18T23:00:58.874000",
            "OutDestinationDate": "2018-12-19T00:54:18.663000",
            "CODAmount": 0,
            "EWBN": [],
            "FirstAttemptDate": null,
            "ReverseInTransit": false,
            "Scans": [
                {
                    "ScanDetail": {
                        "ScanDateTime": "2018-12-18T00:33:37.614000",
                        "ScanType": "UD",
                        "Scan": "Manifested",
                        "StatusDateTime": "2018-12-18T00:33:37.614000",
                        "ScannedLocation": "BLR_Kudulu_CP (Karnataka)",
                        "Instructions": "Consignment Manifested",
                        "StatusCode": "X-UCI"
                    }
                },


                {
                    "ScanDetail": {
                        "ScanDateTime": "2018-12-20T17:57:28.002000",
                        "ScanType": "DL",
                        "Scan": "Delivered",
                        "StatusDateTime": "2018-12-20T17:57:28.002000",
                        "ScannedLocation": "Cjb_Kovaipudur_Dc (Tamil Nadu)",
                        "Instructions": "Delivered to consignee",
                        "StatusCode": "EOD-38"
                    }
                }
            ],

        }
    }
]

}

Пожалуйста, помогите мне получить Отгрузку из этого файла JSON. Точная ошибка, которую я получаю, ОШИБКА Ошибка: Uncaught (в обещании): TypeError: Невозможно прочитать свойство «Отгрузка» неопределенного

Ответы [ 3 ]

0 голосов
/ 09 января 2019

Если вы используете angular http, замените эту строку кода в вашем проекте.

изменить эту строку на

this.trackingorder = data;

ниже линии

this.trackingorder = data.json();

Должен решить вашу проблему. Всего наилучшего.

0 голосов
/ 11 января 2019

Я нашел следующий метод работает. Внутри вашего .ts файла используйте

this.http.get("https://track.delhivery.com/api/packages/json/?token=c7ac81cde31a5ea69d38cb098cab16cf7f909062&waybill=2285210000022")
  .subscribe((userData) => {
     console.log("shipment data" +userData);
    this.users.push(userData);

  });

Внутри файла HTML используйте следующее

<div *ngFor ="let Scan of users[0].ShipmentData[0].Shipment.Scans" class="item h5">
      <div *ngIf="Scan.ScanDetail.Scan=='Manifested'">
    <h5 style="font-size:12px;color:black;">• {{Scan.ScanDetail.ScannedLocation}}</h5>

    </div>

0 голосов
/ 09 января 2019

Зависит от того, какой http-модуль вы используете.

Для "@ angular / common / http",

this.http.get('https://yourapi.com').subscribe(data => { this.trackingorder = data; console.log(this.trackingorder.ShipmentData); }

Для '@ ionic-native / http',

this.http.get('https://yourapi.com').subscribe(data => { this.trackingorder = JSON.parse(data); console.log(this.trackingorder.ShipmentData); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...