Son Phan
05/14/2024, 12:15 PMSet
and Map
when serializing/deserializing?
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.