Nodejs принимает данные от проблемы API с json

Я пытаюсь получить некоторые данные 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'}]

Не могли бы вы поделиться журналами ошибок?

Rahul Patil 12.03.2019 10:00

Ошибка @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\jso‌​n.js:89:19)

hxnAbbas 12.03.2019 10:03

когда я использую bodyParser.json({ type: 'application/*+json' }) он возвращает мне пустой {}

hxnAbbas 12.03.2019 10:04

Что вы получаете для response[0].SYMBOL ?

Şivā SankĂr 12.03.2019 10:13

@ŞivāSankĂr Не определить

hxnAbbas 12.03.2019 10:23

Откуда вы скопировали свой ответ? CMD/Браузер/Почтальон?

Şivā SankĂr 12.03.2019 10:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
51
3

Ответы 3

Ваш ответ находится в тексте. Чтобы преобразовать текст в строку 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? Это настолько плохо, насколько это возможно.

Seblor 12.03.2019 10:51

Надеюсь, что строка из надежного источника.

Şivā SankĂr 12.03.2019 10:52

Источнику нужно доверять, как и сети. Это неприемлемо для любого веб-приложения. Оценка из внешнего источника — наихудший возможный сценарий.

Seblor 12.03.2019 10:54

Ответ обновлен, чтобы предупредить об использовании eval(). Теперь зависит от требования/источника API, с которым они решат использовать eval() или нет.

Şivā SankĂr 12.03.2019 11:01

Если результат JSON, предоставленный API поставщика, действительно таков:

[{ SYMBOL: 'FOREX',
CODE: 'REG',
LST: '219.50',
LTP: '12:52:35'}]

Я должен сообщить вам, что это недопустимый JSON. В JSON свойства должны быть строками между двойные кавычки, иначе их нельзя проанализировать.

Желаемый ответ - правильная форма. Вероятно, есть ошибка в том, как поставщик формирует выходные данные.

tl;dr : API вашего поставщика предоставляет вам объект JavaScript, а не JSON.

Итак, что я сделал, так это использовал STRINGIFY в качестве промежуточного программного обеспечения, и это решило мою проблему, спасибо за вашу помощь, ребята, действительно заметную.

Другие вопросы по теме