【问题标题】:arangodb, How to retrieve JSON from Post requestarangodb,如何从 Post 请求中检索 JSON
【发布时间】:2017-01-29 17:28:24
【问题描述】:

我正在向我的 foxx 微服务中的端点发布一条 JSON 消息。 我不清楚如何获取完整的 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 吗?

【问题讨论】:

  • 您的 JSON 无效。您使用了错误的引号。
  • 是的,JSON 是错误的。无论如何,正确的方法如下:var request = req.body。设备数据;然后获取“id”,var reqId = request.id;谢谢
  • 正如他们所说,使用" 双引号,而不是您在评论中使用的, 格式的双引号。如果您认为输入是“文本”格式并且需要转换为 JSON,也可以尝试 JSON.parse(req.body.deviceData)

标签: javascript json post arangodb endpoints


【解决方案1】:

这是一个接受 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 表示请求中的数据无效。

【讨论】:

    【解决方案2】:

    首先使用 https://jsonformatter.curiousconcept.com/ 验证您的 JSON 数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2017-12-03
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多