【问题标题】:NodeJs JSON.parse - SyntaxError: Unexpected token u in JSON at position 0NodeJs JSON.parse - SyntaxError:JSON 中位置 0 处的意外标记 u
【发布时间】:2020-02-24 20:13:49
【问题描述】:

基本上我要做的只是使用以下代码解析我的 JSON 文件:

var fileName = `./tasks/file-1.json`

fs.readFile(fileName, function(err, data){

    var parsedData = JSON.parse(data);
    console.log(`Entered ${parsedData.fname}`);

});

我的 file-1.json 文件如下所示:

{
  "fname": "Test"
}

因此,无论出于何种原因,控制台都应该记录“输入测试”,但它却给我抛出了错误:

SyntaxError: 位置 0 处 JSON 中的意外标记 u

我已经检查了所有内容,但我不确定从这里去哪里。

感谢任何帮助!

【问题讨论】:

  • 这是完整的代码还是只是一个sn-p?因为您的代码运行良好
  • @AnkitAgarwal 这是除了 const fs = require('fs'); 之外的完整代码
  • 我的节点项目在我的本地运行,我尝试了你的代码,我在控制台中得到了"Entered Test"
  • @AnkitAgarwal 它有时并不总是发生。 Jamesthoo 你能弄明白吗?

标签: node.js json parsing


【解决方案1】:

您好,我创建了一个简单的示例。 文件名必须准确无误,并且您的 JSON 文件不应包含 ;

您可以使用__dirname 为您提供当前目录路径,path.join 将给定的字符串参数组合为可理解的路径。

希望对您有所帮助。

// index.js
const fs = require('fs');
const path= require('path');

const file = fs.readFileSync(path.join(__dirname, 'test.json'));
console.log(JSON.parse(file.toString()).key);
// test.json
{
    "key": "1"
}

【讨论】:

    【解决方案2】:

    检查文件的编码。

    也试试

    fs.readFile(fileName, 'utf8', function(err, data){
    
        var parsedData = JSON.parse(data);
        console.log(`Entered ${parsedData.fname}`);
    
    });
    

    【讨论】:

      【解决方案3】:

      检查 JSON 文件是否存在于您提供的相同路径中。

      这个正在工作,兄弟!

      const fs = require('fs')
      const fileName = './tasks/file-1.json'
      
      fs.readFile(fileName, function(err, data){
          var parsedData = JSON.parse(data);
          console.log(`Entered: ${parsedData.fname}`);
      });
      

      【讨论】:

        猜你喜欢
        • 2020-01-10
        • 2019-09-21
        • 2020-04-12
        • 2016-09-21
        • 1970-01-01
        • 2019-09-23
        • 1970-01-01
        • 2021-06-30
        相关资源
        最近更新 更多