Watson Translator的JSON响应未定义

时间:2018-09-05 15:10:45

标签: javascript node.js undefined ibm-watson watson-conversation

我正在尝试通过IBM https://www.ibm.com/watson/developercloud/alchemyvision/api/v1/#apiexplorer的API文档通过我的node.js应用程序使用Watson翻译器服务

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 :(得分:5)

尝试

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

这是因为translations是一个数组,并且在索引0处有一个项目。

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