2017-12-13 10 views
0
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) 
     } 
    } 
); 

하지만 문제는 코드를 구문 분석하고 조정하는 방법을 알지 못합니다.JSON을 얻는 방법 node.js에서 HTTP 요청을 사용 하시겠습니까?

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

이 JSON에서 원하는 값은 현재 엔티티입니다.

내가 원하는 정확한 엔티티를 제공하도록 코드를 조정하려면 어떻게해야합니까?

+0

시도해보십시오. 참고 자료 : https://stackoverflow.com/q/17811827/1531971 및 기타 웹 검색에서 찾은 기타 정보 – jdv

+0

'JSON.parse' 했나요? –

답변

0

확실하지 않은 경우 Chrome 개발자 도구 등을 사용할 수 있습니다. &는 전체 JSON 문자열을 붙여 넣은 다음 그냥 콘솔 창에

testvar 

를 입력 할 수 있습니다

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

Ctrtl + 시프트 + J를 누르십시오 그리고 당신은 것입니다 복사 참조 :

{entities: Array(1)} 

이제 확장 아이콘을 클릭하여 변수를 확장 할 수 있습니다.

testvar.entities[0] 

를 입력하면 당신에게 첫 번째 배열 항목 아래 모든게 표시됩니다.

testvar.entities[0].entity 

당신이 JSON에 새로 추가되거나 구조가 너무 중첩되는 경우 쉽게 될 수있는 개발자 도구를 사용하여

today 

이러한 접근 방식을 보여줍니다 입력. 유형이 하나를 matchs 경우 귀하의 코멘트에 추가

"것은 내가 내가 유형을 확인 할 것이기 때문에 이러한 핀 포인트 방법을 싶지 않아요, 그리고 난 난 것 기대하고 있습니다 그 enitty 값을 가지고 "

언제든지 노드가 있는지 여부를 확인할 수 있습니다. 예를 들어

....

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 

희망이 있습니다.

+0

typeof (body)이 작동하지 않았습니다. – Alexis

0

실체는 배열, 그래서 당신이 개체의 첫 번째 요소를 얻으려면, 당신은 같은 것을 할 필요가 :

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

는 도움이되기를 바랍니다.

+0

문제는 타입을 검사 할 것이기 때문에 핀 포인트 메쏘드를 원하지 않는다. 타입이 일치한다면 나는 그 enitty 값을 가질 것이다. – Alexis