繁体   English   中英

JSON.parse()返回[object Object](Node.Js)

[英]JSON.parse() returns [object Object] (Node.Js)

我已经在节点模块上工作了一段时间了,并且意识到如果我想要一个同步和异步函数,我将不得不以一种不同的方式来调用该函数。

在我调用回调函数之前,如果我console.log它,它可以正常工作并作为对象输出。 记录typeof也表示它是一个对象。 但是,一旦到达另一端,到test.js文件,它总是输出为

[对象对象]

如果我记录了typeof,则表示它是一个对象。 如果我尝试记录它的任何值,它将无法工作。 这样的两个对象的数组输出

[对象对象],[对象对象]

如果我使用JSON.stringify(),它可以正常工作,但是我想将其输出为已解析。

注意:我仍然可以访问文件中的值。

码:

test.js(我的测试文件)

var val;
instances.findInstance(config, function(err, res){
 if (err){
   arkin.error(err);
 }
 val = res;
});

console.log('\n\nOUT\n' + val.failures[0].failure);

index.js(函数所在的文件)

module.exports.findInstance = async function(config, callback){
  var returned = instances.find(config);

  const errorJson = JSON.parse(fs.readFileSync(__dirname + '/error.json', 'utf8'));

  end(); //Deletes the JSON files

  if (globalError === true){
    let err = new Error(JSON.stringify(errorJson));
    if (!err){
      err = 'An unknown error occured';
    }
    returned = undefined;
    callback(err, returned);
  }else{
    let err = undefined;
    callback(err, returned);
  }
}

main.js(先前的index.js片段,用于处理退货)

  //RESULTS
  let result = JSON.parse(fs.readFileSync('./results.json', 'utf8'));

  if (globalError === true){
    return 'ERROR';
  }else{
    return result;
  }

谢谢你的帮助!

我有一个小答案,即我们使用JSON.parse()解析字符串。

来自Web服务器的数据始终是字符串。 要将其转换为对象,我们使用此parse方法。

但是在您的问题中,我认为服务器没有任何内容。 如果没有来自服务器的数据,则此JSON.parse()方法将返回默认参数。 [Object Object]

这是我的观点。 请检查一次。

您应该使用console.dir查看对象的属性。

MDN console.dir

显示指定JavaScript对象的属性的交互式列表。 输出显示为带有显示三角形的层次结构列表,可让您查看子对象的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM