2012-07-03 2 views
2

gson을 사용하여 Android 캘린더 개체에 JSON (StartDate =/Date (1341348517698 + 0200) /)으로 제공되는 DateTime (C#)을 deserialize하려고합니다. ...gson : convert/Date (1341348517698 + 0200)/to 캘린더

은 이미 성공없이 다음 시도 : 대신 날짜의

ObjectWithCalender cal = gson.fromJson(jsonWithDate, ObjectWithCalender.class); 

답변

5

입니다. 예 : 이 클래스를 만들 :

public class DotNetDateDeserializer implements JsonDeserializer<Date> { 
    @Override 
    public Date deserialize(JsonElement json, Type typfOfT, JsonDeserializationContext context) { 
     // this is the place where you convert .NET timestamp into Java Date object 
    } 
} 

그리고 POJO로 JSON 문자열로 변환하기 전에 :

GsonBuilder builder = new GsonBuilder(); 
builder.registerTypeAdapter(Date.class, new DotNetDateDeserializer()); 
Gson gson = builder.create(); 
gson.fromJson(jsonString, Class); 
+0

예를 들어 Java 'Date.class'를 사용했지만 'Calendar.class'로 바꿀 수 있습니다. – azgolfer

1

사용 유닉스 타임 스탬프, 날짜 당신은 날짜에 대한 사용자 정의 디시리얼라이저를 만들 필요가 모호한 구조체

+0

가 어떻게 유닉스 타임 스탬프에서 달력을 얻을 것? 내장되어 있습니까? 아니면 사용자 지정 디시리얼라이저를 작성해야합니까? – Dunken

+0

캘린더에서 사용하기 전에 datetime으로 변환하십시오. 그러나 전송에서는 숫자를 사용할 수 없습니다. –