Android:json';s值为空
在我的Android项目中,当用户登录时,它将访问我们的服务器并向客户端返回json数据,当用户输入错误的用户名或密码时,服务器将返回json数据,如下所示:Android:json';s值为空,android,json,Android,Json,在我的Android项目中,当用户登录时,它将访问我们的服务器并向客户端返回json数据,当用户输入错误的用户名或密码时,服务器将返回json数据,如下所示: {"d":{"__type":"FMService.LoginUser:#StarHope.FMS.Web.Pages.Service","Error":"worng","Permissions":null,"UserInfo":null}} 但是,当用户输入正确的用户名和密码时,返回的数据“Error”为null。因此键“Error”
{"d":{"__type":"FMService.LoginUser:#StarHope.FMS.Web.Pages.Service","Error":"worng","Permissions":null,"UserInfo":null}}
但是,当用户输入正确的用户名和密码时,返回的数据“Error”为null。因此键“Error”的值为null。我试着用这个来处理它
try
{
//when Error is not null
String error = (String) map.get("Error");
}
catch (Exception e)
{
//when Error is null
}
这样行吗?这个有什么问题吗?谢谢。你可以用。如果映射丢失,此方法将引发JSONException
公共字符串getString(字符串名称)
API级别1中添加的返回按名称映射的值(如果存在),
如有必要,强迫它
如果不存在这样的映射,则抛出JSONException
您还可以使用以下命令测试映射是否存在或是否为null
请注意,
Error
字段位于d
对象内部,而不是根对象。将json字符串解析为使用isNull
在向映射添加值之前检查jsonobject
内容是否为NULL:
JSONObject jobject=new JSONObject("YOUR_JSON_STRING");
if(!jobject.isNull("d")){
JSONObject jobjd=jobject.getJSONObject("d");
String strtype,strError;
if(jobjd.isNull("__type")){
strtype=jobjd.getString("__type");
}
else{
//do some code here
strtype="is null";
}
if(jobjd.isNull("Error")){
strError=jobjd.getString("Error");
}
else{
//do some code here
strError="is null";
}
//.....same code here for Permissions and UserInfo
}
else{
//do some code here
}
当用户在此处输入正确的用户名和密码时,还要添加json