2016-12-15 15 views
-5

私は値を取得しようとしていますが、適切ではない1つの配列は別の「値がありません」エラーのために表示されていますので、値の異なる配列を取得する方法を教えてください。 "名前の配列が壊れていて、出力の次の値が見つかりませんでした。エラーが表示され、アプリケーションがクラッシュしました。このJsonからアンドロイドですべての値を取得する方法は?

{ 
"project": [{ 

      "name": [{ 
      "sac": "sachin", 
      "sag": "sagar" 
     }] 
}, { 
    "output": " true", 
    "msg1": [{ 
     "emp": "001", 
     "empname": "sachin" 
    }, { 
     "emp": "002", 
     "empname": "sagar" 
    }] 
}, { 
    "output_prg": " true", 
    "msg2": [{ 
     "id": "1", 
     "pr_code": "SD" 
    }, { 
     "id": "002", 
     "pr_code": "SJ" 
    }] 
}] 
} 
+0

JSON配列内のインデックスに基づいて解析する必要があります.JSON配列には同じJSONオブジェクトがありません。最初のインデックスでは別々に解析し、2番目のインデックスでは別個のパーサーを実装する必要があります。 – Vishwa

+0

ありがとう、しかし、どのように私はすべてのオプションを試してみてください、このjson配列に関連するいくつかの例を教えてください。 –

+0

私の提案はJSonArrayとしてProductを取得する代わりにJSonObjectを使用しています。 – Vishwa

答えて

0

配列のインデックスに基づいて応答を解析できます。インデックスが0の場合、JSONに基づいてデータを解析できます。

ここで私はあなたの応答を解析しました。

しかし、JSONレスポンスは標準ではありません

JSONArray productArray=jsonObject.getJSONArray("project"); 
      if(productArray.length()>0){ 
       JSONObject nameJson=productArray.getJSONObject(0); 
       JSONArray nameJsonArray=nameJson.getJSONArray("name"); 
       for(int i=0;i<nameJsonArray.length();i++){ 
        JSONObject nameJSonObject=nameJsonArray.getJSONObject(i); 
        String sac=nameJSonObject.getString("sac"); 
        String sag=nameJSonObject.getString("sag"); 
       } 
      } 
      if(productArray.length()>1){ 
       JSONObject outputJSON=productArray.getJSONObject(1); 
       String outputStatus=outputJSON.getString("output"); 
       JSONArray msgArray=outputJSON.getJSONArray("msg1"); 
       for(int i=0;i<msgArray.length();i++){ 
        JSONObject msgJsonObject=msgArray.getJSONObject(i); 
        String empStr=msgJsonObject.getString("emp"); 
        String empNameStr=msgJsonObject.getString("empname"); 
       } 
      } 
      if(productArray.length()>2){ 
       JSONObject outputJSON=productArray.getJSONObject(2); 
       String outputPrgStatus=outputJSON.getString("output_prg"); 
       JSONArray msgArray=outputJSON.getJSONArray("msg2"); 
       for(int i=0;i<msgArray.length();i++){ 
        JSONObject msgJsonObject=msgArray.getJSONObject(i); 
        String idStr=msgJsonObject.getString("id"); 
        String prCodeStr=msgJsonObject.getString("pr_code"); 
       } 
      } 
(JsonArrayの意図は、プロジェクトのアレイで使用されていない、つまり、より良いはJSONObjectとしてプロジェクトJsonArrayを作成し、JSONのキーと別々JSONObjectとして、各インデックスを割り当てます)
関連する問題