我的Json对象数组看起来像
[{"Temp_Password":"arun111","Password":""}]
在我的Android代码中,我一直使用AsyncTask任务来执行HTTP请求,
在使用toast的preexecute方法()中,我可以将其作为字符串[{"Temp_Password":"arun111","Password":""}]
我试图在这个Json中获取单个值,但是我无法获得预期的结果
我的Java代码
protected void onPostExecute(String result) {
//View your result here.
JSONArray arr = null;
String a = null;
String b = null;
try {
arr=new JSONArray(result);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONObject obj=new JSONObject((Map) arr);
try {
a = obj.getString("Temp_Password");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
b = obj.getString("Password");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(Certify_Login.this,a, Toast.LENGTH_LONG).show();
Toast.makeText(Certify_Login.this,b, Toast.LENGTH_LONG).show();
}
错误
03-08 00:50:33.426: E/AndroidRuntime(1788): java.lang.ClassCastException: org.json.JSONArray cannot be cast to java.util.Map
答案 0 :(得分:0)
JSONObject obj=new JSONObject(arr);
删除Map并尝试,因为JSONObject需要一个JSONArray,而问题是它被映射到Map Object