2012-02-23 15 views
1

会場検索からJSONデータを読み取る際に問題があります。ここに私のコードは次のとおりです。JSON結果の処理

xmlhttpRC = new XMLHttpRequest(); 
url = "https://api.foursquare.com/v2/venues/explore?ll="+pointStrr+"&oauth_token=V5PI2GJ0KDOVH2GAHNHJ5DVLMRKNF440FR1N1HPG0XHX2OBQ&v=2015643& 
callback=JSONP"; 
xmlhttpRC.open("GET", url, true); 
xmlhttpRC.onreadystatechange = recCb;  
xmlhttpRC.send(null); 
//return recommendedArr; 
} 

function recCb(data){ 
//console.log(data); 
if(xmlhttpRC.readyState == 4){ 
    if(xmlhttpRC.status == 200){ 
     var recRes = xmlhttpRC.response; 

     console.log(recRes); 

     //console.log(recRes); 
     console.log(recRes.meta.code); 
    } 
} 

}

私は、サーバーから期待し、放火犯はJSONオブジェクトが返されることを私に示しているが、私はから内部のデータにアクセスする方法がわからないREPONSEを取得しますここに。

にconsole.log(recRes.meta.code)エラーを返します:

は私が間違っているつもりです

"recRes.metaは定義されていませんか"? 私は会場情報にアクセスしたいですが、私は単純なテストとしてmeta.codeを使用しています。 これはおそらく本当にシンプルですが、私は困惑しています!

ありがとうございます。 ロス。

答えて

0
var decodedResp = JSON.parse(recRes); 
if (decodedResp.meta.code === ...) 

JSONオブジェクトはJSオブジェクトの単なる表現です。最初に解析する必要があります。

+0

返事をいただきありがとうございます。 JSON.parse(recRes)を使用すると、JSON.parse:予期しない文字がエラーになります。 JSONデータはJSONPで始まるので、あなたはそれを考えていますか? – user1229498

+0

JSONPは、[ここ](http://stackoverflow.com/questions/3543513/how-to-parse-jsonp-data-returned-from-remote-server)に記載されているように、別の話です。 – raina77ow

+0

私はそれをリクエストしましたJSONとして今、それはJSON(... として返さしかし、私はまだエラーを取得している: JSON.parse:予期しない文字 VAR recResD = JSON.parse(recRes); – user1229498

1

JSONを解析する必要があります。現代のブラウザにはJSON.parseが組み込まれていますが、IEの古いバージョンなどはありません。理論的にはeval(応答)を使用できますが、セキュリティホールが作成されます。

There is a library最新のブラウザを使用しているユーザーに依存できない場合は、解析する必要があります。

+0

私は以下にコメントしたいと思いますが、まだ十分な担当者がいません。 JSONデータが返されている階層を投稿できますか? – Snuffleupagus

+0

申し訳ありませんが、ただこれを見ました。 &callback = JSONPを削除して問題を解決しました。入力いただきありがとうございます。私はあなたに代理人を与えることができる方法はありますか? – user1229498

関連する問題