2012-03-15 7 views
0

私はこのJSONbutを解析しようとしていますが、それは配列を持たずにカウントを取得します。これを解析するJSON

{ 
    "earthquakes": [ 
     { 
      "eqid": "c0001xgp", 
      "magnitude": 8.8, 
      "lng": 142.369, 
      "src": "us", 
      "datetime": "2011-03-11 04:46:23", 
      "depth": 24.4, 
      "lat": 38.322 
     }, 
     { 
      "eqid": "2007hear", 
      "magnitude": 8.4, 
      "lng": 101.3815, 
      "src": "us", 
      "datetime": "2007-09-12 09:10:26", 
      "depth": 30, 
      "lat": -4.5172 
     }, 
     { 
      "eqid": "2007aqbk", 
      "magnitude": 8, 
      "lng": 156.9567, 
      "src": "us", 
      "datetime": "2007-04-01 18:39:56", 
      "depth": 10, 
      "lat": -8.4528 
     }, 
     { 
      "eqid": "2007hec6", 
      "magnitude": 7.8, 
      "lng": 100.9638, 
      "src": "us", 
      "datetime": "2007-09-12 21:49:01", 
      "depth": 10, 
      "lat": -2.5265 
     }, 
     { 
      "eqid": "a00043nx", 
      "magnitude": 7.7, 
      "lng": 100.1139, 
      "src": "us", 
      "datetime": "2010-10-25 12:42:22", 
      "depth": 20.6, 
      "lat": -3.4841 
     }, 
     { 
      "eqid": "2010utc5", 
      "magnitude": 7.7, 
      "lng": 97.1315, 
      "src": "us", 
      "datetime": "2010-04-06 20:15:02", 
      "depth": 31, 
      "lat": 2.3602 
     }, 
     { 
      "eqid": "2009mebz", 
      "magnitude": 7.6, 
      "lng": 99.9606, 
      "src": "us", 
      "datetime": "2009-09-30 08:16:09", 
      "depth": 80, 
      "lat": -0.7889 
     }, 
     { 
      "eqid": "2009kdb2", 
      "magnitude": 7.6, 
      "lng": 92.9226, 
      "src": "us", 
      "datetime": "2009-08-10 17:55:39", 
      "depth": 33.1, 
      "lat": 14.0129 
     }, 
     { 
      "eqid": "2010zbca", 
      "magnitude": 7.6, 
      "lng": 123.533, 
      "src": "us", 
      "datetime": "2010-07-23 20:51:11", 
      "depth": 576.3, 
      "lat": 6.4939 
     }, 
     { 
      "eqid": "2010xkbv", 
      "magnitude": 7.5, 
      "lng": 91.9379, 
      "src": "us", 
      "datetime": "2010-06-12 17:26:50", 
      "depth": 35, 
      "lat": 7.7477 
     } 
    ] 
} 

コード:

JSONObject json = JSONfunctions.getJSONfromURL("url"); 
JSONArray earthquake= json.getJSONArray("earthquakes"); 

をしかし、私はのようなもの」がないこのタイプ

[ 
    { 
     "id": "4", 
     "head": "gggg", 
     "details": "gdhghfhgfh", 
     "d2": "jkjkjk", 
     "datetime": "2012-03-12", 
     "last_update": "2012-03-14 05:08:32" 
    }, 
    { 
     "id": "5", 
     "head": "bb1", 
     "details": "sddassa", 
     "d2": "ddsdsddsd", 
     "datetime": "0000-00-00", 
     "last_update": "2012-03-13 07:33:56" 
    }, 
    { 
     "id": "3", 
     "head": "hhh", 
     "details": "hhhh", 
     "d2": "dsdsdds", 
     "datetime": "2012-03-01", 
     "last_update": "2012-03-12 08:35:27" 
    } 
] 

を持っている私はJSONwillが可能ならば を解析するために使用されるように

前回の「地震」と同じです。

+1

そのJSONないジェイソンは、次のようにあなたがJSONArrayに変換することができます:P –

+0

うん、それを得ました.... :) :) – zaiff

答えて

1

あなたが得る場合は、直接JSONArray arr = new JSONArray(stringResponse);

を使用してJSONArrayに変換することができます文字列のJSONレスポンス

 String stringResponse = JSONfunctions.getJSONResponsefromURL("url"); 
     try { 
      JSONArray arr = new JSONArray(stringResponse); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
2

確かに、あなたはキー "地震"のJSON配列を求めているので、キー "地震"と一致するJSON配列を取得しました。

ちょうど私はあなたの質問を理解しました。 JSONライブラリがコンテンツを変更することはほとんどありません。URLから取得したコンテンツは毎回少しずつ異なる可能性があります。これが事実であることを確認するために、このコードを試してください:あなたが直接サーバーの応答がデータの配列で変換することができます

JSONObject json = JSONfunctions.getJSONfromURL("url"); 
Log.d("Some tag", json.toString()); 
JSONArray earthquake= json.getJSONArray("earthquakes"); 
Log.d("Some tag", earthquake.toString()); 
+1

しかし、あなたが密接にJSON文字列を見れば、あなた」異常を見つけるでしょう – waqaslam

+0

私は後でそれを見ました。私の編集を見てください。 – MByD