#json #node-red
#json #узел-красный
Вопрос:
Я новичок в node-red и хочу анализировать содержимое, полученное из api википедии. Я отправляю запросы в конечную точку запроса:
https://en.wikipedia.org/w/api.php?action=queryamp;titles={{{query}}}amp;prop=revisionsamp;rvprop=parsetreeamp;format=jsonamp;rvsection=0
Ответ выглядит примерно так:
{
...,
"query": {
"normalized": [ ... ],
"pages": {
"123456789": {
"pageid": 123456789,
"ns": 0,
"title": "title",
"revisions": [{
"parsetree": "...."
}]
}
}
}
}
Мне нужно проанализировать содержимое parsetree, но я не могу динамически получить первый объект json страниц.
Конечно, я могу сделать что-то вроде: msg.payload.query.pages.123456789.revisions[0].parsetree
Но у меня есть много заголовков, которые я хотел бы запрашивать и обрабатывать.
Есть ли другой способ получить содержимое parsetree?
Ответ №1:
Вы всегда можете получить список ключей в объекте, используя Object.keys(obj)
метод (doc)
Так что что-то вроде этого должно работать
var pages = Object.keys(msg.payload.query.pages);
for (var i=0; i<pages.length; i ) {
var parsetree = msg.payload.query.pages[pages[i]].revisions[0].parsetree;
...
}