2016-07-25 4 views
1

granautype, 사용자 자격 증명 및 클라이언트 자격 증명이있는 요청이있을 때 액세스 토큰, 새로 고침 토큰 및 유효성을 포함하는 json 문자열을 반환하는 oauth2 서버가 있습니다. 내가 가진 응답 문자열은 아래에있다.Java : Oauth2 서비스에서 반환 된 json 문자열을 모델 클래스 객체에 매핑하는 방법

{"value":"yu592e04-o9d5-8724-92a8-c5034df13cae","expiration":"Jul 25, 2016 4:14:31 PM","tokenType":"bearer","refreshToken":{"expiration":"Sep 24, 2016 3:14:31 PM","value":"bb6b7d65-a938-h75b-9cc5-d78b38e7adf9"},"scope":[],"additionalInformation":{}} 

지금 나는 아래의 클래스에 필드를 매핑 할 나는게 필요성을 할 수있는 class.How에 JSON 문자열에서 모든 필드를 매핑해야합니다.

public class UserToken{ 
String accessToken; 
Date accessTokenValidity; 
String accessTokenType; 
String refreshToken; 
Date refreshTokenValidity; 
String scope; 
} 

답변

1

당신은 할 수 Jackson 라이브러리를 사용하여 해당.

시도해보십시오. refreshToken 태그는 java의 클래스가됩니다.

public class Convertor { 

    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException { 
     String json = "{\"value\":\"yu592e04-o9d5-8724-92a8-c5034df13cae\",\"expiration\":\"Jul 25, 2016 4:14:31 PM\",\"tokenType\":\"bearer\",\"refreshToken\":{\"expiration\":\"Sep 24, 2016 3:14:31 PM\",\"value\":\"bb6b7d65-a938-h75b-9cc5-d78b38e7adf9\"}}"; 
     Convertor converter = new Convertor(); 
     UserToken token = converter.fromJson(json); 
     System.out.println(token); 

    } 

    public UserToken fromJson(String json) throws JsonParseException, JsonMappingException, IOException { 
     UserToken token = (UserToken) new ObjectMapper().readValue(json, UserToken.class); 

     return token; 
    } 

} 

class UserToken { 

    String value; 
    String expiration; 
    String tokenType; 
    RefreshToken refreshToken; 

    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 

    public String getExpiration() { 
     return expiration; 
    } 

    public void setExpiration(String expiration) { 
     this.expiration = expiration; 
    } 

    public String getTokenType() { 
     return tokenType; 
    } 

    public void setTokenType(String tokenType) { 
     this.tokenType = tokenType; 
    } 

    public RefreshToken getRefreshToken() { 
     return refreshToken; 
    } 

    @JsonProperty("refreshToken") 
    public void setRefreshToken(RefreshToken refreshToken) { 
     this.refreshToken = refreshToken; 
    } 



    @Override 
    public String toString() { 

     return "value " + value + "expiration " + expiration + "refreshToken.Expiration " + refreshToken.getExpiration() 
       + " refreshToken.getValue: " + refreshToken.getValue(); 
    } 
} 

class RefreshToken { 
    String expiration; 
    String value; 

    public String getExpiration() { 
     return expiration; 
    } 

    public void setExpiration(String expiration) { 
     this.expiration = expiration; 
    } 

    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 

} 
+0

내가 라벨 "값"2 필드가 있기 때문에 내가 제공 한 JSON 문자열에, 나는 UR exmaple 내게 도움이 될 것입니다 생각하지 않습니다이 fields.I을지도하는 데 필요한 클래스와 질문을 업데이트 "만료"및 refreshtoken 필드에는 2 개의 하위 필드가 있는데 그 중 하나는 분리해야합니다. – KJEjava48

+0

첫 번째 값 필드는 accessToken에 매핑되고 두 번째 값 필드는 refreshToken에 매핑되어야합니다. 마찬가지로 첫 번째 만료 필드는 accessTokenValidity에 매핑되고 두 번째 값은 refreshTokenValidity에 매핑되어야합니다. – KJEjava48

+0

u에서 어떤 해결책? – KJEjava48