44 lines
1.2 KiB
Kotlin
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)
|
|
}
|
|
}
|
|
}
|