来自Watson Translator Undefined的JSON响应

ara*_*ram 1 javascript undefined node.js ibm-watson watson-conversation

我试图通过来自IBM的API文档从我的node.js应用程序中使用Watson转换器服务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));
    }
  );
 }
Run Code Online (Sandbox Code Playgroud)

我在日志中得到以下正确的响应

{
  "translations": [
    {
      "translation": "Hi."
    }
  ],
  "word_count": 1,
  "character_count": 4
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试提取输出转换值时,我总是得到输出Undefined.

console.log(response.translations.translation); => undefined
Run Code Online (Sandbox Code Playgroud)

如果我做错了什么,你可以检查并告诉我吗?

谢谢

Jim*_*mex 5

尝试

console.log(response.translations[0].translation); // Hi
Run Code Online (Sandbox Code Playgroud)

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

{
  "translations": [
    {
      "translation": "Hi."
    }
  ],
  "word_count": 1,
  "character_count": 4
}
Run Code Online (Sandbox Code Playgroud)