JavaScript преобразование объекта JavaScript в объект JSON

#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(...) производит an array , а не an object . Если он не пошлет { "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);