diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-07-15 22:55:09 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-07-15 22:55:09 +1200 |
commit | 946978e44223beb5b4b202c80dce6319f9a5cc14 (patch) | |
tree | f7f006121e3f4186dd0fbb3b9e8695cbd5826cf2 /src/org/traccar/model/MiscFormatter.java | |
parent | fd8ac5fd906b398f86ecd04820fedb86b8e39a9a (diff) | |
download | trackermap-server-946978e44223beb5b4b202c80dce6319f9a5cc14.tar.gz trackermap-server-946978e44223beb5b4b202c80dce6319f9a5cc14.tar.bz2 trackermap-server-946978e44223beb5b4b202c80dce6319f9a5cc14.zip |
Store extra data in JSON format
Diffstat (limited to 'src/org/traccar/model/MiscFormatter.java')
-rw-r--r-- | src/org/traccar/model/MiscFormatter.java | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/org/traccar/model/MiscFormatter.java b/src/org/traccar/model/MiscFormatter.java index e0e7d11e8..a866f3ec7 100644 --- a/src/org/traccar/model/MiscFormatter.java +++ b/src/org/traccar/model/MiscFormatter.java @@ -15,13 +15,16 @@ */ package org.traccar.model; -import org.traccar.helper.Log; - +import java.text.DecimalFormat; +import java.util.LinkedHashMap; +import java.util.Map; import javax.json.Json; +import javax.json.JsonNumber; import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -import java.text.DecimalFormat; -import java.util.Map; +import javax.json.JsonString; +import javax.json.JsonValue; +import org.traccar.helper.Log; /** * Format extended tracker status @@ -79,7 +82,36 @@ public class MiscFormatter { return json.build(); } - private static String toJsonString(Map<String, Object> other) { + public static Map<String, Object> fromJson(JsonObject json) { + + Map<String, Object> other = new LinkedHashMap<>(); + + for (Map.Entry<String, JsonValue> entry : json.entrySet()) { + switch (entry.getValue().getValueType()) { + case STRING: + other.put(entry.getKey(), ((JsonString) entry.getValue()).getString()); + break; + case NUMBER: + JsonNumber number = (JsonNumber) entry.getValue(); + if (number.isIntegral()) { + other.put(entry.getKey(), number.longValue()); + } else { + other.put(entry.getKey(), number.doubleValue()); + } + break; + case TRUE: + other.put(entry.getKey(), true); + break; + case FALSE: + other.put(entry.getKey(), false); + break; + } + } + + return other; + } + + public static String toJsonString(Map<String, Object> other) { return toJson(other).toString(); } |