2012-01-27 10 views
1

タイムスタンプを含むJSON応答がありますが、日付オブジェクトに解析する際に問題があります。私は同じ難しさを同じフォーマットに戻してそれを直列化しています。私はオブジェクトへのJSON応答をデコードするためにGsonを使用していますが、これは私が問題を抱えている唯一の場所です。Java/JSON DateTimeフィールド

"TimeStamp":"\/Date(1327650052632+0000)\/" 

カスタムシリアル化/デシリアライズアダプターを見たことがありますが、ヘッダーまたはテールを作成できませんでした。

よろしく、

EZFrag
+1

これはhttp://stackoverflow.com/questions/4322541/how-to-convert-a-date-between-jackson-and-gson – stacker

答えて

1

私はアダプタを理解することができました。ここで私が使用したコードは次のとおりです。

private Gson createGson(){ 

    JsonSerializer<Date> ser = new JsonSerializer<Date>() { 
      @Override 
      public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext 
        context) { 
      return src == null ? null : new JsonPrimitive("\\/Date("+src.getTime()+"+0000)\\/"); 
      } 
     }; 

     JsonDeserializer<Date> deser = new JsonDeserializer<Date>() { 
      @Override 
      public Date deserialize(JsonElement json, Type typeOfT, 
       JsonDeserializationContext context) throws JsonParseException { 
       String tmpDate = json.getAsString(); 

       Pattern pattern = Pattern.compile("\\d+"); 
       Matcher matcher = pattern.matcher(tmpDate); 
       boolean found = false; 

       while (matcher.find() && !found) { 
        found = true; 
        tmpDate = matcher.group(); 
       } 


      return json == null ? null : new Date(Long.parseLong(tmpDate)); 
      } 
     }; 


    return new GsonBuilder().serializeNulls() 
      .registerTypeAdapter(Date.class, ser) 
      .registerTypeAdapter(Date.class, deser).create(); 
} 
0

jQueryのこの方法を有しています。

formatJSONDate(日(result.dateFromJSON))

か、この正規表現を試してください。

function parseJsonDate(jsonDate) { 
    var offset = new Date().getTimezoneOffset() * 60000; 
    var parts = /\/Date\((-?\d+)([+-]\d{2})?(\d{2})?.*/.exec(jsonDate); 

    if (parts[2] == undefined) 
     parts[2] = 0; 

    if (parts[3] == undefined) 
     parts[3] = 0; 

    return new Date(+parts[1] + offset + parts[2]*3600000 + parts[3]*60000); 
}; 
+0

P.S.関連しているように見えます+1とUpVoteこのコメントが好きなら... –

+0

haha​​!コメントや答え? –

関連する問題