/ / Dostęp do elementu w tablicy JSON i danych obiektów wyświetlanych - json, api

Dostęp do elementu w tablicy JSON i danych obiektów wyświetlanych - json, api

Próbuję użyć interfejsu API pogody i uzyskać otwarte danedla pierwszego obiektu w tablicy JSON. Zamiast tego otrzymuję wszystkie obiekty. Jak mogę uzyskać dostęp na przykład do pierwszego obiektu w tablicy JSON? W tej chwili wygląda to tak:

wprowadź opis obrazu tutaj

Powinno to wyglądać mniej więcej tak:

      "name":"msl",
"levelType":"hmsl",
"level":0,
"values":[
1031

Oto mój kod: HTML:

     <ion-header>
<ion-navbar>
<ion-title>New App</ion-title>
</ion-navbar>
</ion-header>

<ion-content padding class="no-scroll">
<ion-grid>
</ion-row>
<button ion-button (click) = "getData()">Get Data</button>
<ion-row>{{result.timeSeries}}</ion-row>

<ion-row>
<ion-col>
</ion-grid>
</ion-content>

Kod TS:

import { Component, state } from "@angular/core";
import { NavController, AlertController, Platform, Alert} from "ionic-angular";
import { MapPage } from "../map/map";
import { NewGamePage } from "../new-game/new-game";
import {AchievmentPage} from "../achievment/achievment";
import {DailyRoutesPage}from "../daily-routes/daily-routes";

import { LocalNotifications } from "@ionic-native/local-notifications"
import { PhonegapLocalNotification } from "@ionic-native/phonegap-local-notification";
import { Push, PushObject, PushOptions} from "@ionic-native/push"

import { HttpClient } from "@angular/common/http";
import { Observable } from "rxjs/Observable";


@Component({
selector: "page-home",
templateUrl: "home.html"
})
export class HomePage {

result: any = [];
data: Observable<any>;


constructor(public navCtrl: NavController, public alertCtrl: AlertController, private platform: Platform, private localNotification: LocalNotifications, private notiPhoneGap: PhonegapLocalNotification, public http: HttpClient) {
}
getData(){
var url = `https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/geotype/point/lon/16.158/lat/58.5812/data.json`;
this.data = this.http.get(url);
this.data.subscribe(data=>{
this.result = data;
})
}



}

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz „skreślić” dane za pomocą wbudowanego JSON.stringify funkcjonować. Musisz podać dopełnienie w trzecim parametrze.

Zignoruj ​​proxy CORS, właśnie użyłem go do ominięcia polityki tego samego pochodzenia.

var apiUrl = "https://opendata-download-metfcst.smhi.se/api";
var apiPointUrl = `${apiUrl}/category/pmp3g/version/2/geotype/point`;

// Builds an API url to get a point at a set of coordinates.
function getPointData(longitude, latitude) {
return `${apiPointUrl}/lon/${longitude}/lat/${latitude}/data.json`;
}

// Wrapping with a CORS proxy so that there is no issue with Same-Origin-Policy
var requestQuery = `https://cors.io/?${getPointData(16.158, 58.5812)}`;

$.getJSON(requestQuery, (result, status, xhr) => {
// Display the first two hours in the timeSeries.
console.log(JSON.stringify(result.timeSeries.slice(0, 2), null, 2));
});
.as-console-wrapper { top: 0; max-height: 100% !important; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>