NodeJs JSON .parse - SyntaxError: неожиданный токен u в JSON в позиции 0 - PullRequest
0 голосов
/ 24 февраля 2020

По сути, все, что я пытаюсь сделать, - это просто проанализировать мой 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: Неожиданный токен u в JSON в позиции 0

Я проверил все, и я не уверен, куда go отсюда.

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 24 февраля 2020

Проверьте кодировку вашего файла.

и попробуйте

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

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

});
0 голосов
/ 24 февраля 2020

Проверьте, существует ли файл 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}`);
});
0 голосов
/ 24 февраля 2020

Здравствуйте, я создал простой пример. Имя файла должно быть точной директорией, и ваш 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"
}
...