如何将json处理为普通类对象



我正在用参数(来自模型类)与JsonObjectRequest进行post request。它看起来像

        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对象,它也不返回任何值。

Like, json.getString("email");

如何处理响应?

有一个现有的库Gson(有点具体的com.google.Gson),可用于将JsonObject转换为java bean。你可以通过

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

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

相关内容

  • 没有找到相关文章

最新更新