Получаю get-запросом следующую строку:
[
{
"name": "Основная"
}
]
Помогите пропарсить в массив. Пробую так:
var answer; // тот самый ответ сервера
result = JSON.parse(answer);
Синтаксис валится на второй строке с ошибкой:
undefined:1
[
^
SyntaxError: Unexpected token in JSON at position 0
at JSON.parse (<anonymous>)
Полный листинг кода:
var options = {
host: 'localhost',
path: '/xxx',
headers: {
Authorization: 'xxx'
}
}
http.request(options, (response) => {
var answer = '';
response.on('data', (chunk) => {
answer += chunk;
});
response.on('end', () => {
console.log(typeof answer);
answer = JSON.parse(answer);
console.log(answer);
}).end()
Вот логи консоли:
string
[
{
"name": "Основная"
}
]
дальше описание ошибки:
undefined:1
[
^
SyntaxError: Unexpected token in JSON at position 0
at JSON.parse (<anonymous>)
at IncomingMessage.res.on (D:\Work\Dev\node.js\svoboda\requestHandlers.js:25:27)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1094:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Process finished with exit code 1
console.log(typeof answer)? Запустите непосредственно перед парсингом – Dmytro Dec 21 '18 at 10:45undefined, который вы пытаетесь распарсить. Попробуйте выполнитьJSON.parse(undefined), получите такую же ошибку. – Stepan Kasyanenko Dec 21 '18 at 10:50requestв коллбэке принимает 3 параметра, а первый из них -error. 2) Попробобывал бы сделать запрос на другой адрес; 3)answerпросто бы объявил, ничего не присваиваяanswerявляется строкой уже при объявлении. – Dmytro Dec 21 '18 at 11:25data. Поставьтеconsole.log(answer)в событииdata. Такое ощущение, что послеendопять происходитdata, потомendи вот здесь уже ошибка. – Stepan Kasyanenko Dec 21 '18 at 11:36