Node-RED parse json получен из Викимедиа апи - PullRequest
0 голосов
/ 09 апреля 2019

Я новичок в node-red и хочу проанализировать содержимое, полученное из API Википедии. Я отправляю запросы в конечную точку запроса:

https://en.wikipedia.org/w/api.php?action=query&titles={{{query}}}&prop=revisions&rvprop=parsetree&format=json&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 Ответ

1 голос
/ 09 апреля 2019

Вы всегда можете получить список ключей в объекте, используя метод 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;
  ...
}
...