클라이언트-서버와 DB가있는 안드로이드 앱을 개발하고 있습니다.
gson을 사용하여 서버와 클라이언트 간의 개체를 구문 분석합니다.
내 유형은 java.sql.date
이 코드를 실행할 때 (메시지는 내가 만든 객체입니다 ...) :
public ArrayList<Message> getMessagesByKehilaName(String kehilaName) throws Exception {
String result = GET(URL + "getMessagesByKehilaName?kehilaName=" + kehilaName);
Gson gson = new Gson();
ArrayList<Message> am = new ArrayList<Message>(Arrays.asList(gson.fromJson(result, Message[].class)));
return am;
}
이 예외가 발생합니다.
com.google.gson.JsonSyntaxException : java.text.ParseException : 파싱 할 수없는 날짜 : "2011-11-05"(오프셋 0)
내 DB의 값은 실제로 2011-11-05
이고 내 메시지 날짜 유형도 java.sql.date
입니다.
이 예외가있는 이유는 무엇입니까?
registerTypeAdapter를 java.util.date로 변경했으며 이제 작동합니다.
SqlDateTypeAdapter sqlAdapter = new SqlDateTypeAdapter();
Gson gson = new GsonBuilder()
.registerTypeAdapter(java.util.Date.class, sqlAdapter )
.setDateFormat("yyyy-MM-dd")
.create();
왜 작동하는지 모르겠습니다. 내 유형은 sql.Date이지만 이것은 작동합니다 ..
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다