2017-01-29 16 views
0

私はfoxxマイクロサービスのエンドポイントにJSONメッセージを投稿しています。 それはそれを解析するために、完全な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からのエラー要求の無効なデータ

関連する問題