NodeJS SyntaxError: неожиданный токен в JSON в позиции 0 - PullRequest
0 голосов
/ 03 мая 2019

Ответ body от API песочницы Authorize.net:

"{"messages":{"resultCode":"Error","message":[{"code":"E00012","text":"You have submitted a duplicate of Subscription 5777085. A duplicate subscription will not be created."}]}}"

, но когда я его анализирую:

try {
   bodyObj = JSON.parse(body);
} catch (ex) {
   console.error(ex);
}

Я получаю эту ошибку: SyntaxError: Unexpected token  in JSON at position 0

И это: console.log(response.headers['content-type']);

возвращает это: application/json; charset=utf-8

Что я делаю не так?Я хочу разобрать JSON в объект JS.

1 Ответ

2 голосов
/ 03 мая 2019

На самом деле вы его не видели, но был невидимый символ Юникода, в частности метка порядка байтов в начале JSON.
Поскольку метка порядка байтов не является допустимым символом JSON, JSON.parse отклонил его.
byte order mark image
Чтобы удалить, используйте следующий код.

function removeByteOrderMark(str){
    return str.replace(/^\ufeff/g,"")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...