package tech.platypush.platypush import org.json.JSONArray import org.json.JSONObject import java.util.* import kotlin.collections.HashMap class JSON { companion object { private fun toMap(obj: JSONObject): Map { val ret = HashMap() val keys = obj.keys() while (keys.hasNext()) { val key = keys.next() var value = obj[key] if (value is JSONObject) value = toMap(value) else if (value is JSONArray) value = toList(value) ret[key] = value } return ret } private fun toList(arr: JSONArray): List { val ret = LinkedList() for (i in 0 until arr.length()) { var value = arr[i] if (value is JSONObject) value = toMap(value) else if (value is JSONArray) value = toList(value) ret.add(value) } return ret } fun load(str: String): Map { return toMap(JSONObject(str)) } fun dump(obj: Map): String { return JSONObject(obj).toString() } } }