Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gson解析android中检查密钥是否存在_Android_Json_Gson_Android Volley - Fatal编程技术网

如何在gson解析android中检查密钥是否存在

如何在gson解析android中检查密钥是否存在,android,json,gson,android-volley,Android,Json,Gson,Android Volley,我正在使用gson解析json响应。然而,就我而言,我对成功和失败的反应不同。 因此,我无法解析数据,因为在我的实用程序类中,我创建了一些系列化字段,这些字段在两种场景中都不存在。 e、 g.注册成功时,我使用user键获取用户详细信息;注册失败时,我使用error字段获取错误消息 我了解json解析,我们会一步一步地解析,比如如果成功了,就解析用户详细信息,否则就解析错误。同样在json解析中,我们有方法has,它检查一个键是否存在。我也在gson寻找类似的产品 下面是我的代码片段,请检查一下

我正在使用gson解析json响应。然而,就我而言,我对成功和失败的反应不同。 因此,我无法解析数据,因为在我的实用程序类中,我创建了一些系列化字段,这些字段在两种场景中都不存在。 e、 g.注册成功时,我使用
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)