1

ここに私のコードがあります..アンドロイド文字列で

result[{"Submitted_Date_Time":"12\/3\/2012","City":"","Issue_Category":"Graffity","OnProgress_Date_Time":"","id":"000000000000000","area":"SH 55","State":"  ","Issue_Description":" ","Closed_Date_Time":"","imagepath":"android.graphics.Bitmap@40d55cd8","Latitude":"23.71","Longitude":"72.04","Issue_Status":"Closed","LandMark":" "}] 

そして、それをjson配列に変換しようとすると、json配列からjsonオブジェクトを取得したいときに、nullpointer exception...

JSONArray jarray = new JSONArray(result);
JSONObject jobj = jarray.getJSONObject(1);

助けてください..事前にthnkx..

4

3 に答える 3

1

最初にjson文字列が含まれ"result"ている場合は有効ではありません。ここで確認できますhttp://jsonviewer.stack.hu/

有効な json 文字列を作成するには、次のように String.replace を使用します。

String finaljson=result.replace("result", "");

JSON文字列が有効になり、次のように解析できます。

JSONArray jsonarray = new JSONArray(finaljson);
for (int i = 0 ; i < jarray.length() ; i++) {
 JSONObject jsonobj = jarray.getJSONObject(i);
  // get value from json object here 
    String str_City=jsonobj.getString("City");
    ///....
}
于 2012-12-07T07:59:30.740 に答える
0

Json 配列にはエントリが1 つだけ含まれており、インデックスは0です

JSONArray jarray = new JSONArray(result);
JSONObject jobj = jarray.getJSONObject(0);

for正しく処理するには、ループを使用して json 配列にアクセスします

JSONArray jarray = new JSONArray(result);
for (int i = 0 ; i < jarray.length() ; i++) {
     JSONObject jobj = jarray.getJSONObject(i);
     .....
}
于 2012-12-07T07:53:24.133 に答える
0

以下のコード行を更新すると、問題が解決します。

JSONObject jobj = jarray.getJSONObject(0);

または、オブジェクトが複数ある場合は、上記のコード行の代わりに以下のコードを記述できます。

for(int i=0;i<jarray.length();i++){
    JSONObject jobj = jarray.getJSONObject(i);
}
于 2012-12-07T07:59:31.477 に答える