1

这是我的代码..in android String

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数组只包含一项,索引为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 回答