2017-12-13 13 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 

を入力することができますそして、あなたは意志

Ctrtl + 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" 
      } 
     ] 
     } 
    } 
    ] 
}; 

を押してください参照:

{entities: Array(1)} 

拡張アイコンをクリックして変数を展開できるようになりました。

testvar.entities[0] 

を入力すると、あなたの最初の配列項目の下everthingが表示されます。

testvar.entities[0].entity 

を入力すると、あなたはJSONに新しく追加されたかの構造があまりにも入れ子になっている場合は、開発者ツールを使用して、このアプローチは、より簡単にすることができ

today 

が表示されます。タイプは1を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

エンティティは、Arrayあるので、あなたは、エンティティの最初の要素を取得したい場合、あなたはちょうどこのような何かをする必要があります:

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

はそれがお役に立てば幸いです。

+0

私はタイプをチェックしているので、私はそのようなピンポイント方法が欲しくないです。タイプが一致すれば、私はそのenitty値を取ると思っています。 – Alexis

関連する問題