Как преобразовать массив свойств JSON в массив строк объекта в node.js ?

#javascript #node.js #json #api #post

#javascript #node.js #json #API #Публикация

Вопрос:

В настоящее время у меня есть следующий JSON:

 {
  "Id": ["1", "2"],
  "Settings": [{ "Key": "IgnitionOn", "Value": "true" }]
}
 

Я хочу иметь возможность доступа к идентификатору и преобразовать его в массив строк в node.js . А именно, то, что я хочу сделать, это использовать идентификатор доступа req.body.Id . Это работает, когда Id — это просто строка. Если я попытаюсь получить доступ req.body.Id к текущему, я получу его неопределенным. Я также пробовал JSON.parse(req.body.Id) и JSON.stringify(req.body.Id) , но в обоих подходах идентификаторы все еще не определены. Учитывая мое тело запроса выше, есть какие-либо предложения о том, как я могу создать экземпляр массива, который точно является массивом идентификаторов в теле?

Любая помощь будет высоко оценена!

Комментарии:

1. можете ли вы попробовать войти req.body.Id в систему?

Ответ №1:

Вы можете проанализировать этот JSON, чтобы получить объект:

 const result = JSON.pasrse(req.body)
const id = result.id;
 

Комментарии:

1. Есть ли способ преобразовать этот объект в массив? В настоящее время, когда я делаю то, что предложено выше, id все еще не определено.

Ответ №2:

Если ваше тело находится в формате JSON, вам нужно будет проанализировать все тело с JSON.parse(req.body) помощью, прежде чем обращаться к .Id полю

 let req = {
    body: `{
        "Id": ["1","2"],
        "Settings": [{"Key": "IgnitionOn", "Value": "true"}]
        }`
}
let body = JSON.parse(req.body)
let ids = body.Id
console.log(ids)
// [ '1', '2' ]
 

Комментарии:

1. Когда я пробую этот подход, я получаю сообщение об ошибке: «Невозможно преобразовать объект в примитивное значение». Что бы это значило в данном случае? В дополнение к этому ids , как определено выше, для меня все еще не определено…