Hey, everyone. Is Gson guaranteed to preserve the ...
# android
s
Hey, everyone. Is Gson guaranteed to preserve the order of
Set
and
Map
when serializing/deserializing?
Copy code
val json = """{"user_id_1": "1", "user_id_2": "2", "user_id_3": "3"}"""

val deserializedMap = gson.fromJson<Map<String, String>>(json, object : TypeToken<Map<String, String>>() {}.type) // Orders: "user_id_1" --> "user_id_2" --> "user_id_3"?

val serializedMap = gson.toJson<Map<String, String>>(deserializedMap, object : TypeToken<Map<String, String>>() {}.type) // // Orders: "user_id_1" --> "user_id_2" --> "user_id_3"?
I've read the internal code of Gson (as well as debugging myself) and seems like it uses
LinkedHashSet
and
LinkedTreeMap
by default when serializing/deserializing and hence it does preserve the orders. But asking again to be sure 100%. Inn my feature, orders preservation is a critical requirement. Thanks.
not kotlin but kotlin colored 3