【问题标题】:How to get the JSON I want using an HTTP request on node.js?如何在 node.js 上使用 HTTP 请求获取我想要的 JSON?
【发布时间】:2018-05-27 12:59:01
【问题描述】:
var request = require('request');

request.post(
    'http://www.yoursite.com/formpage',
    { json: { key: 'value' } },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    }
);

但我的问题是不知道如何解析和调整代码。

"entities": [
    {
      "entity": "today",
      "type": "builtin.datetimeV2.date",
      "startIndex": 0,
      "endIndex": 4,
      "resolution": {
        "values": [
          {
            "timex": "2017-12-13",
            "type": "date",
            "value": "2017-12-13"
          }
        ]
      }
    }
  ]
}

我想从这个 JSON 中得到的值是今天的实体。

如何调整代码以提供我想要的确切实体?

【问题讨论】:

标签: node.js parsing


【解决方案1】:

如果您不确定,可以使用例如 Chrome 开发者工具。复制并粘贴完整的 JSON 字符串,然后按

Ctrl + Shift + J

testvar = {"entities": [
{
  "entity": "today",
  "type": "builtin.datetimeV2.date",
  "startIndex": 0,
  "endIndex": 4,
  "resolution": {
    "values": [
          {
            "timex": "2017-12-13",
             "type": "date",
             "value": "2017-12-13"
           }
         ]
       }
     }
   ]
 };

现在你可以输入了

testvar

进入控制台窗口

你会看到:

{entities: Array(1)}

您现在可以通过单击展开图标来展开变量。

进入

testvar.entities[0] 

将向您显示第一个数组项下方的所有内容。进入

testvar.entities[0].entity

会显示

today

如果您不熟悉 JSON 或结构过于嵌套,则使用开发人员工具的这种方法会更容易。

除了你的评论

“问题是我不想要这种精确的方法,因为我会检查类型,如果类型与我期望的匹配,我将采用该实体值”

您可以随时检查节点是否存在。

例如....

   typeof(body);
   "object"

   typeof(body.entities);
   "object"

   typeof(body.testxyz);
   "undefined"

   typeof(body.entities[0].resolution.values);
   "object"

你可以在你的条件下检查这些。

此外,您可以检索节点内的项目数。

   Object.keys(body.entities[0].resolution.values).length

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    entities 是一个数组,所以如果你想获取实体的第一个元素,你只需要这样做:

    console.log(body.entities[0].entity);
    

    希望对你有帮助。

    【讨论】:

    • 问题是我不想要这种精确的方法,因为我会检查类型,如果类型与我期望的匹配,我将采用该实体值。
    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2014-11-11
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多