1*2de1965aSWill Schurman // Copyright 2015-present 650 Industries. All rights reserved.
2*2de1965aSWill Schurman package host.exp.exponent.utils
3*2de1965aSWill Schurman 
4*2de1965aSWill Schurman import org.json.JSONArray
5*2de1965aSWill Schurman import org.json.JSONException
6*2de1965aSWill Schurman import org.json.JSONObject
7*2de1965aSWill Schurman import java.util.ArrayList
8*2de1965aSWill Schurman import java.util.HashMap
9*2de1965aSWill Schurman 
10*2de1965aSWill Schurman object JSONUtils {
11*2de1965aSWill Schurman   @Throws(JSONException::class)
getJSONStringnull12*2de1965aSWill Schurman   @JvmStatic fun getJSONString(item: Any): String {
13*2de1965aSWill Schurman     if (item is HashMap<*, *>) {
14*2de1965aSWill Schurman       return getJSONFromHashMap(item).toString()
15*2de1965aSWill Schurman     } else if (item is ArrayList<*>) {
16*2de1965aSWill Schurman       return getJSONFromArrayList(item).toString()
17*2de1965aSWill Schurman     }
18*2de1965aSWill Schurman     return item.toString()
19*2de1965aSWill Schurman   }
20*2de1965aSWill Schurman 
21*2de1965aSWill Schurman   @Throws(JSONException::class)
getJSONFromArrayListnull22*2de1965aSWill Schurman   private fun getJSONFromArrayList(array: ArrayList<*>): JSONArray {
23*2de1965aSWill Schurman     val json = JSONArray()
24*2de1965aSWill Schurman     for (value in array) {
25*2de1965aSWill Schurman       var newValue = value
26*2de1965aSWill Schurman       if (value is HashMap<*, *>) {
27*2de1965aSWill Schurman         newValue = getJSONFromHashMap(value)
28*2de1965aSWill Schurman       } else if (value is ArrayList<*>) {
29*2de1965aSWill Schurman         newValue = getJSONFromArrayList(value)
30*2de1965aSWill Schurman       }
31*2de1965aSWill Schurman       json.put(newValue)
32*2de1965aSWill Schurman     }
33*2de1965aSWill Schurman     return json
34*2de1965aSWill Schurman   }
35*2de1965aSWill Schurman 
36*2de1965aSWill Schurman   @Throws(JSONException::class)
getJSONFromHashMapnull37*2de1965aSWill Schurman   private fun getJSONFromHashMap(map: HashMap<*, *>): JSONObject {
38*2de1965aSWill Schurman     val json = JSONObject()
39*2de1965aSWill Schurman     for (key in map.keys) {
40*2de1965aSWill Schurman       var value = map[key]
41*2de1965aSWill Schurman       if (value is HashMap<*, *>) {
42*2de1965aSWill Schurman         value = getJSONFromHashMap(value)
43*2de1965aSWill Schurman       } else if (value is ArrayList<*>) {
44*2de1965aSWill Schurman         value = getJSONFromArrayList(value)
45*2de1965aSWill Schurman       }
46*2de1965aSWill Schurman       json.put(key.toString(), value)
47*2de1965aSWill Schurman     }
48*2de1965aSWill Schurman     return json
49*2de1965aSWill Schurman   }
50*2de1965aSWill Schurman }
51