当我以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
答案 0 :(得分:0)
您有空值。 JSONObject不能接受空值。
请参阅How do you set a value to null with org.json.JSONObject in java?