2016-08-28 5 views
1

모델 클래스의 매개 변수를 사용하여 JsonObjectRequest와 함께 게시물 요청을하고 있습니다. 모양은 다음과 같습니다.json을 일반 클래스 객체로 처리하는 방법은 무엇입니까?

 SignUpRequest registrationRequest = new SignUpRequest(); 
     registrationRequest.setFirstName("fdffdfd"); 
     registrationRequest.setLastName("bbbbbb"); 
     registrationRequest.setEmail("[email protected]"); 
     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 메소드가 있습니다. 응답도 마찬가지로 나는 setter 및 응답 개체의 getters 데 RegistrationInfo 클래스가 있습니다.

이제는 문제가 어떻게 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");가 어떻게 응답을 처리 할 수 ​​있을까?

답변

0

JsonObject를 Java Bean으로 변환하는 데 사용할 수있는 기존 라이브러리 Gson (비트 특정 com.google.Gson)이 있습니다. 당신은 GSON 라이브러리 내부적으로 자바 빈에 JSON 문자열을 변환하는 반사 방법을 사용

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

로 할 수 있습니다.

+0

GSON입니까? 아니면 Gson입니까? GSON 때문에 라이브러리를 찾을 수 없으므로 오류가 발생합니다. – Jaccs

관련 문제