Узел-КРАСНЫЙ синтаксический анализ json, полученный из api викимедиа

#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;
  ...
}