2017-04-01 1 views
-4

Die folgende API gibt einige JSON-Daten:Wie verschachtelte Objekte in einzelne Elemente in einem Array geschoben werden?

https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=bananas

ich die Eigenschaften drücken versuche (auch Objekte) der Seiten in einem einzigen Array-Objekt. Jedes Objekt sollte ein eigenes Element im Array sein.

Zum Beispiel query.pages sollte in ein Array wie [38940{}, 284306{}, ...]

Im tut dies geschoben werden, so dass ich durch das Array foreach laufen kann und das DOM mit den erforderlichen Daten füllen.

Vielen Dank im Voraus!

+4

Bitte zeigen Sie, was Sie versucht haben. Stackoverflow ist kein kostenloser Code-Schreibservice. Das Ziel hier ist, Ihnen zu helfen, *** Ihren Code *** zu reparieren, wenn es nicht wie erwartet funktioniert – charlietfl

Antwort

0

Es scheint, dass es alles, was Sie brauchen, wenn Sie ES6 haben:

var pages = Object.values(response.query.pages); 

Oder können Sie diese Variante verwenden, um es älteren Browsern arbeiten in:

var pages = Object.keys(response.query.pages).map(function (key) { 
    return response.query.pages[key]; 
}); 

Weitere ausführliche Antwort kann here gefunden werden.

-3
// result is the json from https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=bananas 

const singleArray = Object.keys(result.query.pages).reduce((acc, id) => { 
    acc.push(result.query.pages[id]); 
    return acc; 
}, []); 
+0

Danke @topheman. Die Verwendung von Tasten auf dem Objekt ist genau das, wonach ich suche. – Nims

Verwandte Themen