2017-01-29 2 views
0

Я отправляю сообщение JSON на конечную точку в моем микросервисе foxx. Неясно мне, как получить полный JSON для того, чтобы разобрать его:arangodb, Как получить JSON из запроса на отправку

router.post('/storeDataRecord', (req, res) => { 

.... 

}).body('deviceData'); 

Это JSON:

{ 
    “data”: [ 
     { 
      “id”: “identifier”, 
      “key1”: “value1”, 
      “key2”: “value2” 
     } 
    ] 
} 

Я попытался с

var request = req.body.deviceData; 
var request = req.body.get('data'); 

может вы помогите мне понять, как перемещаться по json?

+0

Ваш JSON является недействительным. Вы используете неправильные кавычки. – Quentin

+0

Да, JSON ошибается. В любом случае правильный путь следующий: var request = req.body. deviceData; а затем для получения «id», var reqId = request.id; спасибо –

+0

Как они сказали, используйте '' 'двойные кавычки, а не' '' '' '' 'отформатированные, которые у вас есть в вашем комментарии. Также попробуйте' JSON.parse (req.body.deviceData) ', если вы думаете, что вход в формате «текст» и должен быть преобразован в JSON. –

ответ

0

Вот минимальный, полный, рабочий пример маршрута после запроса приняв JSon тело:

var joi = require('joi'); 
var processJson = function(jsonObject) { 
    return JSON.stringify(jsonObject); 
}; 
router.post('/start', function(req, res) { 
    var result = processJson(req.body); 
    res.json({'result': result}); 
}).summary('Json example').body(joi.object().unknown(true), ['json']); 

Обратите внимание, что принятый контент-тип объявлен (['json'], стенографии для ['application/json'])

Конечно, предполагается, что данные, которые вы публикуете, действительно действительны JSON, но если это не так, вы должны увидеть ошибки на отправляющей стороне (отладка в код отправки и проверка передаваемых данных) или, по крайней мере, ошибку от arangodb, указывающую неверные данные в запросе.

Смежные вопросы