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

时间:2016-08-28 13:13:59

标签: java android json jsonobjectrequest

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

        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");

我如何处理回复?

1 个答案:

答案 0 :(得分:0)

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

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

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