2012-03-07 19 views
0

を投げる:JavaのJSONコード私は、このJSON文字列持つ例外

[{"user_id":"123","email":"[email protected]","lat":"40.748329","lng":"-73.996223", 
        "first_name":"Alex","last_name":"Genadinik"}] 

と、このJavaコード:

  try 
      { 
       JSONObject obj = new JSONObject(result); 

       Log.d("NAME: " , "test: " + obj.getString("first_name"));  

      } 
      catch (Exception e) 
      { 
       Log.d("JSON ERRORZ: " , "some crap happened " + e.getMessage()); 
      } 

をしかし、それは、このエラーがスローされます。

[{"last_name":"Genadinik","first_name":"Alex","lng":"-73.996223","user_id":"1","email":"[email protected]","lat":"40.748329"}] of type org.json.JSONArray cannot be converted to JSONObject 

どのように任意のアイデア私はこれを修正し、単にJSONの値を抽出するだけです。

ありがとうございます!

答えて

2

、初め(look here)で角括弧ではなく、反対しない

オブジェクトは次のようになります。代わりにJSONArrayを使用し、JSONObjectを抽出します。

+0

しかし、JSONArrayオブジェクトを使用すると、そこにある値を取得する関数は何ですか?私はAPIに該当するものは表示されません - ありがとう! – GeekedOut

+0

getJSONObjectを見てください。 – MByD

+0

これは次のようなものでしょうか?\t JSONArray obj = new JSONArray(result); \t \t \t \t \t JSONObject o = obj.getJSONObject(1); \t \t \t \t \t Log.d( "NAME:"、 "test:" + o.getString( "first_name")); – GeekedOut

3

エラーはそれをすべて示しています。あなたはオブジェクトを期待する配列を渡しています。

エラーを修正するには、JSON文字列から角括弧([])を削除する必要があります。

配列がどのように見えるよう
{ 
    key: 'value' 
} 

:このJSON文字列が配列である

[ 
    { key: 'value' }, 
    1, 
    'some string' 
] 
+0

しかし、JSONArrayオブジェクトを使用すると、そこにある値を取得する関数は何ですか?私はAPIに該当するものは表示されません - ありがとう! – GeekedOut

+0

'getJSONObject(..)'メソッドを使うことができます:)。 – Kevin

関連する問題