我怎样才能从Json获得我想要的部分?

时间:2017-12-14 19:14:17

标签: javascript json node.js parsing

我当前的Json是共享的,这是request.getnode.js中的回复,它位于body,我想要的只是其中的一部分json进一步处理也分享如下:

{
  "query": "THIS IS MY JSON",
  "topScoringIntent": {
    "intent": "INTENT",
    "score": 0.9796973
  },
  "intents": [
    {
      "intent": "INTENT",
      "score": 0.9796973
    },
    {
      "intent": "None",
      "score": 0.0332397744
    },
    {
      "intent": "ANOTHER INTENT",
      "score": 0.0205348358
    },
    {
      "intent": "YET ANOTHER INTENT",
      "score": 0.0141741727
    },
  ],
  "entities": [
    {
      "entity": "FIRST ENTITY",
      "type": "FIRST TYPE ENTITY",
      "startIndex": 38,
      "endIndex": 47,
      "score": 0.5666461
    },
    {
      "entity": "SECOND ENTITY",
      "type": "SECOND TYPE ENTITY",
      "startIndex": 20,
      "endIndex": 32,
      "resolution": {
        "values": [
          {
            "timex": "2017-12-14T04",
            "type": "datetime",
            "value": "2017-12-14 04:00:00"
          }
        ]
      }
    }
  ]
}

我想提取对象实体

3 个答案:

答案 0 :(得分:0)

您只需像任何JavaScript对象一样导航JSON。在如下文档中:

{
  "x": "y"
}

然后,您可以使用y访问json.x值。在你的情况下,它可能只是:

json.entities

其中json是表示已解码JSON值的变量。如果它只是一个字符串,JSON.parse将获取数据。

答案 1 :(得分:0)

您始终可以使用HTTP GET方法:

function httpGetAsync(jsonPathOrUrl, callback)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() { 
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
            callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", jsonPathOrUrl, true); // true for asynchronous 
    xmlHttp.send(null);
}

 function callback(response){
     if(response.entities) return response.entities;
  }

答案 2 :(得分:0)

您应首先将JSON字符串的主体解析为Javascript对象。
您可以尝试以下代码:

let json = JSON.parse(body);
let entities = json.entities