无法将null String转换为JSON对象

时间:2014-08-18 08:37:22

标签: java json

当我以STRING的形式获取输出响应时,此代码可以正常工作 代码是:

try 
     {           

            String id;
            String uName;
            String arg = "{\"id\":\"ets7qkt1luugsj828jugs8vuq5\",\"module_name\":\"Users\",\"name_value_list\":{\"user_id\":{\"name\":\"user_id\",\"value\":\"1\"},\"user_name\":{\"name\":\"user_name\",\"value\":\"dbmadmin\"},\"user_language\":{\"name\":\"user_language\",\"value\":\"en_us\"},\"user_currency_id\":{\"name\":\"user_currency_id\",\"value\":\"-99\"},\"user_is_admin\":{\"name\":\"user_is_admin\",\"value\":true},\"user_default_team_id\":{\"name\":\"user_default_team_id\",\"value\":null},\"user_default_dateformat\":{\"name\":\"user_default_dateformat\",\"value\":\"d-m-Y\"},\"user_default_timeformat\":{\"name\":\"user_default_timeformat\",\"value\":\"h:ia\"},\"user_number_seperator\":{\"name\":\"user_number_seperator\",\"value\":\",\"},\"user_decimal_seperator\":{\"name\":\"user_decimal_seperator\",\"value\":\".\"},\"mobile_max_list_entries\":{\"name\":\"mobile_max_list_entries\",\"value\":null},\"mobile_max_subpanel_entries\":{\"name\":\"mobile_max_subpanel_entries\",\"value\":null},\"user_currency_name\":{\"name\":\"user_currency_name\",\"value\":\"INDIAN RUPEE\"}}}";
            JSONObject obj = new JSONObject(arg);
            id = obj.get("id").toString();
            Log.e("Temp", "id  "+id);
            JSONObject objUserList = obj.getJSONObject("name_value_list");
            JSONObject objUserName = objUserList.getJSONObject("user_name");
            uName = objUserName.getString("value");
            Log.e("Temp", "uName = "+uName);
            tvtest.setText(uName);

                        Log.d("Temp", "Json  "+objUserList.toString());

        } catch (JSONException e) {
              Log.e("log_tag", "Error parsing data "+e.toString());

        }
    }
}

当我从服务器检索代码时,它给出了错误JAVA.LANG.STRING.Cannot be converted into JSONObject。我的代码是:

try
{

                        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                        StringBuilder sb = new StringBuilder();

                        String line = null;
                        while ((line = reader.readLine()) != null) 
                        {
                                sb.append(line+"\n");
                              //  Toast.makeText(getApplicationContext(), "Input Reading pass", Toast.LENGTH_SHORT).show();
                        }
                        is.close();

                        result=sb.toString();
                        Log.i("sbvalue",result);
                    }
                    catch(Exception e)
                    {
                       Log.e("log_tag", "Error converting result "+e.toString());
                    Toast.makeText(getApplicationContext(), " Input reading fail", Toast.LENGTH_SHORT).show();

                    }

                    try{
                       JSONObject obj = new JSONObject(result);

                        String id = obj.get("id").toString();
                        Log.d("Temp", "id  "+id);
                        JSONObject objUserList = obj.getJSONObject("name_value_list");
                        JSONObject objUserName = objUserList.getJSONObject("user_name");
                        String uName = objUserName.getString("value");
                        Log.d("Temp", "uName = "+uName);

我得到的错误:

Error parsing data org.json.JSONException: Value 
{"id":"e8nod37hu0dtuu78oue2pg52u3","module_name":"Users","name_value_list":{"user_id":
{"name":"user_id","value":"1"},"user_name":
{"name":"user_name","value":"dbmadmin"},"user_language":
{"name":"user_language","value":"en_us"},"user_currency_id":
{"name":"user_currency_id","value":"-99"},"user_is_admin":
{"name":"user_is_admin","value":true},"user_default_team_id":
{"name":"user_default_team_id","value":null},"user_default_dateformat":
{"name":"user_default_dateformat","value":"d-m-Y"},"user_default_timeformat":
{"name":"user_default_timeformat","value":"h:ia"},"user_number_seperator":
{"name":"user_number_seperator","value":","},"user_decimal_seperator":
{"name":"user_decimal_seperator","value":"."},"mobile_max_list_entries":
{"name":"mobile_max_list_entries","value":null},"mobile_max_subpanel_entries":
{"name":"mobile_max_subpanel_entries","value":null},"user_currency_name":
{"name":"user_currency_name","value":"INDIAN RUPEE"}}} of type java.lang.String cannot be converted to JSONObject

1 个答案:

答案 0 :(得分:0)

您有空值。 JSONObject不能接受空值。

请参阅How do you set a value to null with org.json.JSONObject in java?