2017-09-07 5 views
-1

이 64 기반 JSON 문자열을 변환하고 flexjson API를 사용하여받은 JSON을 POJO로 변환하려고합니다.Java : 64 기반 문자열 디코딩/구문 분석에 실패했습니다.

첫 번째 try 블록은 직접 JSON을 문자열로 변환하여 성공한 객체로 변환합니다. 이 문자열은 온라인 도구를 사용하여 디코딩됩니다.

이제 두 번째 try 블록에서 유사한 방식으로 64 기반 문자열을 객체로 변환하려고 시도하지만 예외를 던지는 실행에서 64based 문자열을 변환하려고 시도합니다. flexjson.JSONException : 문자에서 ','또는 ']' 10

try { 
     AsyncResponseDO asyncResponseDO = new JSONDeserializer<AsyncResponseDO>().deserialize("{\"relatesTo\":\"7_Sept2017_IF01\"}", AsyncResponseDO.class); 
     System.out.println(asyncResponseDO.getRelatesTo()); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

try { 
     AsyncResponseDO asyncResponseDO = new JSONDeserializer<AsyncResponseDO>().deserialize(Base64.decodeBase64("eyJyZWxhdGVzVG8iOiI3X1NlcHQyMDE3X0lGMDEifQ==".getBytes()).toString(), AsyncResponseDO.class); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

POJO 클래스 :

public class AsyncResponseDO { 
private String relatesTo; 

public String getRelatesTo() { 
    return relatesTo; 
} 
public void setRelatesTo(String relatesTo) { 
    this.relatesTo = relatesTo; 
} 
} 
+0

라고? 'Base64.decodeBase64'는 간단한 텍스트 리터럴/문자열을 매개 변수로 사용하지 않습니까? – CBroe

+0

@CBroe 없음, 단지 바이트 [] 바이트 [] org.apache.commons.codec.binary.Base64.decodeBase64 (바이트 []는 arg0) – user3423446

+0

@CBroe 바이트 [] decodeBase64 (문자열 base64String)를 구할 허용 1.4부터는 1.2입니다. – user3423446

답변