json to HashMap<Date, Integer>

B

Binbose

Ambitioniertes Mitglied
0
Hallo,

wie die Überschrift schon sagt, versuche ich einen json String wie diesen hier
Code:
{"Tue Jan 13 00:00:00 MEZ 2015":2131165194,"Mon Jan 12 00:00:00 MEZ 2015":2131165194,"Thu Dec 11 00:00:00 MEZ 2014":2131165194,
"Fri Dec 12 00:00:00 MEZ 2014":2131165194,"Mon Jan 19 00:00:00 MEZ 2015":2131165194,"Wed Dec 10 00:00:00 MEZ 2014":2131165194,
"Mon Jan 05 00:00:00 MEZ 2015":2131165194}
in eine HashMap<Date, Integer> umzuwandeln.
Um die Objekte in Json und wieder zurück zu konvertieren benutze ich die Gson Library, und mit einfachen Objekten funktioniert das zurückkonvertieren auch wunderbar, nur eben mit sowas nicht.
Ich hoffe ihr könnt mir helfen, danke schonmal im vorraus.

mfg
 
Das sind Strings und auch Java hat ParseDate Funktionen mit denen man solche Strings parsen kann. Aber nicht vergessen Fehler abzufangen.

cu

Der ursprüngliche Beitrag von 01:32 Uhr wurde um 01:34 Uhr ergänzt:

http://beginnersbook.com/2013/05/java-parse-date/

Der ursprüngliche Beitrag von 01:34 Uhr wurde um 01:35 Uhr ergänzt:

Mal so schnell der erste Google Treffer.
 
PHP:
String json = "{\"Tue Jan 13 00:00:00 2015\":2131165194,\"Mon Jan 12 00:00:00 2015\":2131165194}";

Gson gson = new GsonBuilder().setDateFormat("EEE MMM dd HH:mm:ss yyyy").create();

HashMap<Date, Integer> hm = gson.fromJson(json, new TypeToken<HashMap<Date, Integer>>() {}.getType());
Das geht so bei mir, ich musste allerdings das 'MEZ' entfernen, das fehlt daher auch im setDateFormat.
Richtig wäre eigentlich:
PHP:
String json = "{\"Tue Jan 13 00:00:00 MEZ 2015\":2131165194,\"Mon Jan 12 00:00:00 MEZ 2015\":2131165194}";

Gson gson = new GsonBuilder().setDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").create();
Das ging bei mir aber nicht, ich vermute dass Gson mit dem (deutschen) MEZ nicht klarkommt. Damit musst Du dich dann selber rumschlagen. ;)
 
  • Danke
Reaktionen: Binbose
Danke, sowas habe ich gesucht
Das MEZ kann man anscheinend einfach so ergänzen
Code:
setDateFormat("E MMM dd HH:mm:ss 'MEZ' yyyy")
ich weiß nicht ob das die ideale Lösung ist, aber es funktioniert erstmal
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
246
swa00
swa00
M
  • MikelKatzengreis
Antworten
5
Aufrufe
170
swa00
swa00
A
Antworten
10
Aufrufe
1.034
swa00
swa00
Zurück
Oben Unten