繁体   English   中英

如何处理json到普通类对象?

[英]How to process the json to normal class object?

我正在使用带参数的JsonObjectRequest进行post请求(来自模型类)。 看起来像,

        SignUpRequest registrationRequest = new SignUpRequest();
        registrationRequest.setFirstName("fdffdfd");
        registrationRequest.setLastName("bbbbbb");
        registrationRequest.setEmail("Testing@kjkjgmail.com");
        registrationRequest.setDateOfBirth("1991-5-21");

        Gson gson = new Gson();
        String jsonString = gson.toJson(registrationRequest);

        JSONObject parameters = null;
        try {
            parameters = new JSONObject(jsonString);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        JsonObjectRequest postRequest = new JsonObjectRequest(Request.Method.POST, uri, parameters,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.v("MainActivity", "In response :");
                        updateDisplayRegistration(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.d("MainActivity", "In failure :");
                        error.printStackTrace();
                    }
                });
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(postRequest);

SignUpRequest类我有setter和getter方法。 就像响应的方式一样,我也有RegistrationInfo类,它具有响应对象的setter和getter。

现在问题是如何处理响应以将其作为RegistrationInfo类对象。

protected void updateDisplayRegistration(JSONObject json){

        RegistrationInfo regInfo  = new RegistrationInfo(json.toString());

        Log.v("MainActivity","registered email is ::::: ---- ::: " + regInfo.getEmail());
}

但它返回null。 即使我直接尝试使用json对象,它也没有返回任何值。

比如, json.getString("email");

我怎么处理响应?

有一个现有的库Gson(有点特定的com.google.Gson),它可以用来将JsonObject转换为java bean。 你可以这样做

RegistrationInfo regInfo = new GSON(json.toString(),RegistrationInfo.class);

Gson库使用反射方法在内部将JSON字符串转换为Java bean。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM