Я хочу перебрать 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
в этом вопросе, чтобы быть более ясным.)
Вот быстрый код:
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]]]
Заголовки