Я возникли проблемы, пытаясь разобрать файл, содержащий следующий текст в нем:JSON.parse SyntaxError: Неожиданный маркер {при разборе файла с JSON
{ "type": "header", "log_level": 3, "target_port": 80, "source_port_first": 32768, "source_port_last": 61000, "max_targets": -1, "max_runtime": 0, "max_results": 0, "iface": "en0", "rate": 0, "bandwidth": 0, "cooldown_secs": 8, "senders": 7, "use_seed": 0, "seed": 0, "generator": 0, "packet_streams": 1, "probe_module": "tcp_synscan", "output_module": "json", "gw_mac": "00:00:00:00:00:00", "source_ip_first": "127.0.0.1", "source_ip_last": "127.0.0.1", "output_filename": ".\/static\/results\/80.json", "whitelist_filename": ".\/static\/whitelist.conf", "dryrun": 0, "summary": 0, "quiet": 1, "recv_ready": 0 }
{ "type": "result", "saddr": "127.0.0.1" }
Это выход Zmap и node.js продолжает задыхаться от всего после первой линии. Если вы удалите вторую строку из файла, ошибок нет, и программа работает нормально.
Я хочу, чтобы иметь возможность считывать данные JSON в файле и иметь возможность ссылаться на каждую клавишу и значение и распечатывать их в console.log.
Вот мой текущий код:
var fs = require('fs');
var filename = './80.json';
var bufferString;
function ReadFile(callback) {
fs.readFile(filename, 'utf-8', function(err, data) {
bufferString = data;
callback();
});
}
function PrintLine() {
console.log(JSON.parse(bufferString));
}
ReadFile(PrintLine)
Реалистично, я хотел бы поставить все эти данные в базу данных, но мне нужно, чтобы решить эту проблему чтения файла правильно.
Это точное содержание '80.json'? Потому что, если это так, это недействительно JSON, следовательно, ошибка http://jsonlint.com/. У вас есть доступ к этому файлу? – azium
Это недопустимо JSON, потому что это _two_ JSON строки в одном файле. Вы, вероятно, можете читать их один за другим, если вы сначала разделитесь на новую строку. – CBroe
Вы имеете в виду, что файл имеет несколько строк, каждый с объектом? Определите «дроссели». –