2016-09-30 5 views
-2

model.class에서 JSON 구문 분석에 문제가 있습니다. 사용자가 사용자 이름과 암호를 입력하도록 요청하는 안드로이드 응용 프로그램을 만들고 단추를 클릭하면 POST 요청을 보내고 요청은 JSON 데이터로 응답. 여기안드로이드에서의 JSON 구문 분석

//StudentInfo or Login 
    client.post("<url here>", params, new AsyncHttpResponseHandler() { 

     @Override 
     public void onSuccess(String response) { 
      try{ 
        StudentModel sm = new StudentModel(obj); 
        sm.retrievalData(); 
        flag = true; 
        Toast.makeText(getApplicationContext(), "Redirecting...", Toast.LENGTH_LONG).show(); 
        navigatetoProfileActivity(); 
       } 
      }catch(Exception e){ 
       Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show(); 
       e.printStackTrace(); 
      } 
     } 
    }); 

그리고 여기 내 StudentModel.class

public void retrievalData(){ 
//some code to parse the JSON 



} 

글쎄, 내가 JSON 구문 분석에서 초보자 오전과 JSON 응답입니다 :

여기에 안드로이드 스튜디오에서 내 요청입니다.

{ 
    "info": { 
    "add": "<data>", 
    "firstName": "<data>", 
    "lastName": "<data>", 
    "middleName": "<data>", 
    } 
} 

답변

0

글쎄, 당신이 retrievalData()에서 할 수있는 것은 : 등등

String add = <JSONobjectVariableName>.getJSONObject("info").getString("add"); 
String firstName = <JSONobjectVariableName>.getJSONObject("info").getString("firstName"); 

합니다.

String json; //the response 

Gson gson = new Gson(); 
Student s = gson.fromJson(json, Student.class); 

당신은 구글/GSON의 종속성을 추가해야합니다

+0

당신은'getJsonObject ("info")'를 의미한다고 생각합니까? –

2

음, 자바 객체에 JSONs을 구문 분석하는 가장 일반적인 방법은 다음과 같다. 위 응답은 귀하가 응답으로받은 JSON이 귀하의 Student 클래스를 대표하는 경우 작동합니다.

+1

구체적으로 Gson은 무엇입니까? 하지만 이미 위의 코드를 사용하여 JSON을 파싱했습니다. 팁을 주셔서 감사합니다. GSON을 만나면 도움이 될 것입니다. – Peps

+1

Gson은 가장 많이 사용되는 Java JSON 구문 분석 라이브러리입니다. JSON으로 객체를 파싱하고 그 반대의 경우도 쉽게 파싱 할 수있는 여러 정적 메소드가 있습니다. – xenteros