2015-03-20 3 views
0

Я пытаюсь разобрать JSON-файл с кодом ниже, но я получаю сообщение об ошибке:Синтаксический JSON непосредственно из файла в node.js

var fs = require('fs'); 
var sampleData = require("./sampleData.json"); 
var dataInArray = JSON.parse(sampleData.toString()); 

Здесь ошибка:

$ node prog.js 

undefined:1 
[object Object] 
^ 
SyntaxError: Unexpected token o 
    at Object.parse (native) 
    at Object.<anonymous> (~/prog.js:3:24) //The line where I perform the JSON parsing 

Что я делаю неправильно?

+0

Имеет ли ваш json-код действительный синтаксис? – callback

ответ

3

Когда вам требуется json с узлом, он уже разобран для вас. Вобще

var sampleData = require("./sampleData.json"); 
console.log(Object.keys(sampleData)); 

и sampleData будет объект, представленный в формате JSON.

См. this question.

EDIT: Будьте в курсе, когда вы это сделаете, чтобы ваши данные могли быть кешированы и не перезагружаться, если в вашем приложении встречается несколько require. (См. Документы node.js). Если вы измените свои данные во время активного использования приложения, возможно, лучше использовать обычные readFile и JSON.parse, чтобы перезагрузить данные с нуля, когда вам это нужно.

+0

Ну, это удивительно. :-) Я бы не ожидал, что он поддержит прямой JSON, но я полагаю, если это 'eval''ing ... –

+0

Правильно, спасибо –

Смежные вопросы