如何在gson解析android中检查密钥是否存在
我正在使用gson解析json响应。然而,就我而言,我对成功和失败的反应不同。 因此,我无法解析数据,因为在我的实用程序类中,我创建了一些系列化字段,这些字段在两种场景中都不存在。 e、 g.注册成功时,我使用如何在gson解析android中检查密钥是否存在,android,json,gson,android-volley,Android,Json,Gson,Android Volley,我正在使用gson解析json响应。然而,就我而言,我对成功和失败的反应不同。 因此,我无法解析数据,因为在我的实用程序类中,我创建了一些系列化字段,这些字段在两种场景中都不存在。 e、 g.注册成功时,我使用user键获取用户详细信息;注册失败时,我使用error字段获取错误消息 我了解json解析,我们会一步一步地解析,比如如果成功了,就解析用户详细信息,否则就解析错误。同样在json解析中,我们有方法has,它检查一个键是否存在。我也在gson寻找类似的产品 下面是我的代码片段,请检查一下
user
键获取用户详细信息;注册失败时,我使用error
字段获取错误消息
我了解json解析,我们会一步一步地解析,比如如果成功了,就解析用户详细信息,否则就解析错误。同样在json解析中,我们有方法has
,它检查一个键是否存在。我也在gson寻找类似的产品
下面是我的代码片段,请检查一下
从服务器获取注册数据
private void getRegisterData(String email, String password, String full_name,String phone) {
WdApplication= (WAdvantageApplication) this.getApplication();
RequestQueue queue = application.getRequestQueue();
HashMap<String, String> headerMap = new HashMap<String, String>();
headerMap.put(RequestHeaders.CONTENT_TYPE, RequestHeaders.CONTENT_TYPE_JSON);
HashMap<String, String> dataMap = new HashMap<String, String>();
dataMap.put("email", email);
dataMap.put("password", password);
dataMap.put("phone", phone);
dataMap.put("fullname", full_name);
GsonRequest<RegisterDetails> request = new GsonRequest<RegisterDetails>(GsonRequest.Method.POST, URLConstant.REGISTER_URL, RegisterDetails.class, headerMap, dataMap, successListener, failureListener);
queue.add(request);
}
private Response.Listener successListener = new Response.Listener<RegisterDetails>() {
@Override
public void onResponse(RegisterDetails registerDetails) {
Log.e("success", "Success");
finish();
}
};
private Response.ErrorListener failureListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.e("fail", "Registration failed");
}
};
因此,对于成功为真,我只想要用户
部分,对于成功为假,我想要错误
部分
如果我做错了什么,请纠正我,谢谢我不知道你在问什么,但在gson中,如果你在单个响应中获得了成功密钥和用户密钥(如果成功)以及错误(如果出错),你可以这样编码
if(registerDetails.getSuccess().equalsIgnoreCase("true"))
{
// use registerDetails.getUserDetails();
}
else
{
// use registerDetails.getInfo();
}
不确定是否使用GSON,但如果使用,可以提供如下注释
@JsonIgnoreProperties(ignoreUnknown = true)
然后你可以使用同一个模型类来表示成功或失败,如果成功,将设置userDetails,如果失败,错误部分将被设置。但当成功为真时,它会给我错误,当我对
错误的代码进行注释时,它工作正常。我们可以为成功和失败场景提供json结构吗?是的,这就是我在寻找的,但不幸的是,我正在使用GSONA,您无法切换到Jackson的任何原因
@JsonIgnoreProperties(ignoreUnknown = true)