2017-05-04 12 views
0

私はJsonArrayを解析し、その値を取得しようとしていますが、私はコードスニペットが続きJavaのJSONObjectから値を取得する方法は?

jitem.getString("firstitem"); 

または

jitem.getJSONObject("firstitem"); 

または

jitem.get("firstitem"); 

を使用するとき、私はgettignエラーです。

JSONArray arr_items = new JSONArray(str); 
     if(arr_items!=null && arr_items.size()>0){ 

      for(int i=0;i<arr_items.size();i++){ 
      JSONObject jitem = arr_items.getJSONObject(i);//works fine till here 
      jitem.getString("firstitem"); //throws exception here 
      } 

これは私が私が間違っているの何

[{"firstitem":"dgfd","secondtitem":"dfgfdgfdg","thirditem":"[email protected]","fourthitem":"jkksdjklsfjskj"}] 

を解析していますJSONArrayのですか?キーを使ってこれらの値を取得する方法は?

更新:注:この配列とそのパラメータはnullではありません。それらはすべて有効な値を持っています。

+0

例外はありますか? – Henry

+0

どのjsonライブラリを使用していますか?あなたは私が –

+0

@SachinGuptaの方法を混合しているので、私はすべての3つの異なる例外を取得しています。 'getString'システムでは、値は存在しますが、null値がスローされます。上の私が考える「を取得」(わからない、私はログを削除済みとして)構造は、私はOPで述べた、まさにですが、それは構造に関するsoemthingを言っています。 –

答えて

0

最初のチェックarr_itemsは空ではありません。あなたはそれなしにしたい場合は、GSONを追加する必要があり、それにはいくつかの配列名を必要と

try { 
     your snippet 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
+0

これはどのようにして問題を解決しますか?それは例外を回避しますが、まだ値を持っていません。 Androidのメーカーで – Henry

+0

私はスニペットのこのタイプをキャッチ/トライで囲んでいない場合、エディタは警告を与え、私はそれを囲む必要があります。多分、彼は –

0

チェック

String json ="{'array':" + "[{'firstitem':'dgfd','secondtitem':'dfgfdgfdg','thirditem':'[email protected]','fourthitem':'jkksdjklsfjskj'}]"+ "}"; 
    JSONObject myjson = new JSONObject(json); 
    JSONArray the_json_array = myjson.getJSONArray("array"); 

    int size = the_json_array.length(); 
// ArrayList<JSONObject> arrays = new ArrayList<JSONObject>(); 
    for (int i = 0; i < size; i++) { 
     JSONObject another_json_object = the_json_array.getJSONObject(i); 
    // arrays.add(another_json_object); 
     System.out.println(another_json_object.get("firstitem")); 
    } 

以下のように付加し、配列名を: はその後、のtry/catchでスニペットを囲むしてみてください。

関連する問題