#javascript #json #http #object
Вопрос:
Каков самый короткий метод преобразования объекта JavaScript в объект JSON? Ниже приведен мой объект JavaScript.
{
"body": [
{
"id": "1",
"action": "alert",
"activityGroupNames": "test2"
},
{
"id": "2",
"action": "alert",
"activityGroupNames": "test3"
},
{
"id": "3",
"action": "alert",
"activityGroupNames": "test2"
}
]
}
Я использую встроенный сценарий кода в Microsoft automate, который выполняет следующие действия в JavaScript:
var threat = workflowContext.actions.Compose.outputs;
var value = Object.values(threat);
return value;
Я должен опубликовать объект JSON по протоколу HTTP в запросе API, однако я отправляю тип объекта JavaScript и не уверен, как я могу это изменить. Любая помощь будет очень признательна! Пожалуйста, дайте мне знать, если вам потребуется какой-либо дополнительный контекст.
Изменить: Запрос HTTP POST не выполняется из-за «Ссылки на объект, не заданной для экземпляра объекта»
Комментарии:
1. Так
value
это то, что вы отправляете со своимPOST
запросом?2. @majusebetter я сомневаюсь в этом,
Object.values(...)
производит anarray
, а не anobject
. Если он не пошлет{ "body": values }
, я на самом деле не уверен, о чем он спрашивает, это довольно расплывчато.3. @majusebetter да, это верно. Прошу прощения за мою неопределенность. возвращаемая переменная значения имеет тип object, и ее содержимое показано в приведенном выше фрагменте.
4. @Теодор Санду, вот почему я спросил 😉 Потому что нет кода, показывающего, что на самом деле отправляется. Код выглядит как функция, вызываемая «фреймворком». И поскольку произошла ошибка, я предположил, что jupiterone1 пытается отправить массив напрямую.
5. Вы пробовали что-то подобное
return { body: Object.values(threat) }
?
Ответ №1:
Javascript предоставляет встроенный метод JSON.stringify() Это поможет вам преобразовать объект JavaScript в JSON и передать через HTTP-запрос
console.log(JSON.stringify({ x: 5, y: 6 }));
// ожидаемый результат: «{«x»:5,»y»:6}»
Ответ №2:
Обычно JSON используется для обмена данными с/на веб-сервер. При получении данных с веб-сервера данные всегда представляют собой строку. Проанализируйте данные с помощью JSON.parse(), и данные станут объектом JavaScript.
const json = '{ "fruit": "pineapple", "fingers": 10 }';
const obj = JSON.parse(json);
console.log(obj.fruit, obj.fingers);