2017-10-03 4 views
1

Ich versuche, Daten als JSON aus Service namens OpenWeatherMap zu erhalten, also in meiner ComponentWillMount-Methode rufe ich fetch() auf, um Daten per URL zurückzugeben. Mein Code für jetzt ist:React Native fetch() gibt ungerade JSON-Antwortelemente zurück

this.weather = fetch(url).then(response => response.json()).then(responseJson => responseJson);

Es funktioniert, aber gibt ungerade Daten innerhalb JSON-Antwort, meine JSON-Antwort für jetzt ist:

{"_40":0,"_65":1,"_55":{here_the_correct_response}}

Aber ich möchte, dass meine Antwort ohne sein diese seltsamen Unterstreichungsindizes, nur reine JSON Antwort

+0

Was meinen Sie mit "reine JSON-Antwort"? – guest271314

+0

@ guest271314 ohne diese seltsamen Unterstrich-Indizes –

+0

Das scheint die Antwort zu sein. Sie können die Antwort analysieren und die Eigenschaften des Objekts anpassen oder ein neues Objekt mit angepassten Eigenschaftsnamen erstellen. – guest271314

Antwort

1

Ok, ich habe es selbst herausgefunden. Diese ungeraden Daten sind sogenannte Promiss, die von fetch() zurückgegeben werden. Um dies zu befreien ich so tat:

fetch(url) 
    .then(response => response.json().then(data => data)) 
    .then(result => /* Do whatever you want with this result */) 
    .catch(error => /* Do something if error occurs */); 

Ich weiß nicht, warum ich „promiss Entschlüsselung“ zweimal tun soll, aber es funktioniert. Alle Kommentare, die dies erklären, sind willkommen.

Verwandte Themen