Ответ JSON от переводчика Watson Undefined - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь использовать службу переводчика Watson из моего приложения node.js через документацию по API от IBM https://www.ibm.com/watson/developercloud/alchemyvision/api/v1/#apiexplorer

var request = require("request");
var LanguageTranslatorV3 = require('watson-developer-cloud/language-translator/v3');

var english_message

var languageTranslator = new LanguageTranslatorV3({
    version: '2018-05-01',
    username: '1234',
    password: '1234',
    url: 'https://gateway.watsonplatform.net/language-translator/api'
  });


function translatorEnglish(message) {
  var parameters = {
    text: message.text,
    model_id: 'es-en'
  };
  languageTranslator.translate(
    parameters,
    function(error, response, body) {
      if (error)
        console.log(error)
      else
        console.log(JSON.stringify(response, null, 2));
    }
  );
 }

Я получаю следующий правильный ответ в логах

{
  "translations": [
    {
      "translation": "Hi."
    }
  ],
  "word_count": 1,
  "character_count": 4
}

но когда я пытаюсь извлечь выходное значение перевода, я всегда получаю вывод как Undefined.

console.log(response.translations.translation); => undefined

Не могли бы вы проверить и сообщить мне, если я делаю что-то не так?

Спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

Попробуйте

console.log(response.translations[0].translation); // Hi

Это потому, что translations является массивом и имеет один элемент с индексом 0.

{
  "translations": [
    {
      "translation": "Hi."
    }
  ],
  "word_count": 1,
  "character_count": 4
}
...