Я пытаюсь получить некоторые данные JSON из API, предоставленного поставщиком, но я получаю сообщение об ошибке. Я пытаюсь использовать Google, во многих комментариях люди говорят использовать JSON.Stringify, но в моем случае JSON.Stringify мне не помогло, он возвращает пустой массив, например {}
отдых от API выглядит следующим образом
[{ SYMBOL: 'FOREX',
CODE: 'REG',
LST: '219.50',
LTP: '12:52:35'}]
но мой ответ желания
[{ "SYMBOL" : "FOREX",
"CODE": "REG",
"LTP": '219.50',
"LST": '12:52:35'}]
Ошибка @RahulPatil, которую я получаю, когда открываю app.use(body.parser()) SyntaxError: Unexpected token S in JSON at position 5 at JSON.parse (<anonymous>) at parse (D:\nodeGit\finpocket\node_modules\body-parser\lib\types\json.js:89:19)
когда я использую bodyParser.json({ type: 'application/*+json' }) он возвращает мне пустой {}
Что вы получаете для response[0].SYMBOL ?
@ŞivāSankĂr Не определить
Откуда вы скопировали свой ответ? CMD/Браузер/Почтальон?





Ваш ответ находится в тексте. Чтобы преобразовать текст в строку JSON,
let text = `[{ SYMBOL: 'FOREX',
CODE: 'REG',
LST: '219.50',
LTP: '12:52:35'}]`
let jsonStr = JSON.stringify(eval("(" + text + ")")); // Convert Object String to JSON
console.info(jsonStr);
Примечание : Убедитесь, что ваш поставщик является надежным источником, потому что eval открывает ваш код для инъекционные атаки. Если вас это беспокоит, свяжитесь с вашим поставщиком, чтобы предоставить ответ JSON.
Ссылка: Преобразование строки объекта в JSON
Эвал это зло. Вы действительно предлагаете оценить ответ от API? Это настолько плохо, насколько это возможно.
Надеюсь, что строка из надежного источника.
Источнику нужно доверять, как и сети. Это неприемлемо для любого веб-приложения. Оценка из внешнего источника — наихудший возможный сценарий.
Ответ обновлен, чтобы предупредить об использовании eval(). Теперь зависит от требования/источника API, с которым они решат использовать eval() или нет.
Если результат JSON, предоставленный API поставщика, действительно таков:
[{ SYMBOL: 'FOREX',
CODE: 'REG',
LST: '219.50',
LTP: '12:52:35'}]
Я должен сообщить вам, что это недопустимый JSON. В JSON свойства должны быть строками между двойные кавычки, иначе их нельзя проанализировать.
Желаемый ответ - правильная форма. Вероятно, есть ошибка в том, как поставщик формирует выходные данные.
tl;dr : API вашего поставщика предоставляет вам объект JavaScript, а не JSON.
Итак, что я сделал, так это использовал STRINGIFY в качестве промежуточного программного обеспечения, и это решило мою проблему, спасибо за вашу помощь, ребята, действительно заметную.
Не могли бы вы поделиться журналами ошибок?