Json-Android在调用值时出错

时间:2014-03-08 05:54:05

标签: android-json

我的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

1 个答案:

答案 0 :(得分:0)

JSONObject obj=new JSONObject(arr);

删除Map并尝试,因为JSONObject需要一个JSONArray,而问题是它被映射到Map Object