sms-translate/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/JsonObjectWriter.kt
2021-09-12 00:43:00 +01:00

44 lines
1.2 KiB
Kotlin

package com.simplemobiletools.smsmessenger.helpers
import com.google.gson.JsonArray
import com.google.gson.JsonNull
import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive
import com.google.gson.stream.JsonWriter
class JsonObjectWriter(private val writer: JsonWriter) {
fun dump(obj: JsonObject) {
writer.beginObject()
for (key in obj.keySet()) {
writer.name(key)
val keyObj = obj.get(key)
dump(keyObj)
}
writer.endObject()
}
private fun dump(arr: JsonArray) {
writer.beginArray()
for (i in 0 until arr.size()) {
dump(arr.get(i))
}
writer.endArray()
}
private fun dump(obj: Any) {
when (obj) {
is JsonNull -> writer.nullValue()
is JsonPrimitive -> {
when{
obj.isString -> writer.value(obj.asString)
obj.isBoolean -> writer.value(obj.asNumber)
obj.isNumber -> writer.value(obj.asBoolean)
obj.isNumber -> writer.value(obj.asBoolean)
}
}
is JsonArray -> dump(obj)
is JsonObject -> dump(obj)
}
}
}