Как я могу пройти через массив JSON в узле? - PullRequest
0 голосов
/ 22 октября 2018

Я хочу перебрать times, но times - это undefined при отладке.

router.post('/something', function (req, res) {
    var times = req.body.times;
    for (i = 0; i < times.length; i++) { 
        // do something
    }
}

Вот как выглядит body.times при отладке:

{"duration":3600,"startTime":540,"weekDay":0},{"duration":3600,"startTime":600,"weekDay":0},{"duration":3600,"startTime":660,"weekDay":0},{"duration":3600,"startTime":1080,"weekDay":6}:""

Вот скриншот того, как это выглядит при отладке VSCode.Заменить spans на times.(Я просто изменил его на times в этом вопросе, чтобы быть более ясным.) enter image description here

Вот быстрый код:

var jsonArray: [[String: Any]] = [/*The array*/]
let json: [String: Any] = ["times": jsonArray]
guard let body = (try? JSONSerialization.data(withJSONObject: json, 
                                                     options: [])) 
else { 
    return nil 
}

ВотКак настроить Express:

var app = express();
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
app.use(bodyParser.json({ type: 'application/*+json' }))
app.use(bodyParser.json({ type: 'application/json' }))
app.use(bodyParser.json({ type: 'application/x-www-form-urlencoded'}))

Вывод JSON:

 (lldb) po print(json)
 ["spans": [["weekDay": 0, "duration": 3600.0, "startTime": 540], ["weekDay": 0, "duration": 3600.0, "startTime": 600]]]

Заголовки enter image description here

1 Ответ

0 голосов
/ 22 октября 2018

В вашем коде есть две части для проверки

  1. Узел js
  2. Swift

1. Узел js

TestВаш API с проверкой почтового содержимого типа контента (application / json или multipart) и проверки его работоспособности

2) Проверьте код Swift и сопоставьте его с типом контента сервера

Ваши данные

{"duration":3600,"startTime":540,"weekDay":0},{"duration":3600,"startTime":600,"weekDay":0},{"duration":3600,"startTime":660,"weekDay":0},{"duration":3600,"startTime":1080,"weekDay":6}:""

вы перебираете объект, а не массив, поэтому он не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...