All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.keen.client.android.JsonHelper Maven / Gradle / Ivy

There is a newer version: 6.0.0
Show newest version
package io.keen.client.android;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * JSON utilities. This code was taken from:
 * 

* https://gist.github.com/codebutler/2339666 * * @author Kevin Litwack ([email protected]) * @since 2.0.0 */ class JsonHelper { public static Object toJSON(Object object) throws JSONException { if (object instanceof Map) { JSONObject json = new JSONObject(); Map map = (Map) object; for (Object key : map.keySet()) { json.put(key.toString(), toJSON(map.get(key))); } return json; } else if (object instanceof Iterable) { JSONArray json = new JSONArray(); for (Object value : ((Iterable) object)) { json.put(value); } return json; } else { return object; } } public static boolean isEmptyObject(JSONObject object) { return object.names() == null; } public static Map getMap(JSONObject object, String key) throws JSONException { return toMap(object.getJSONObject(key)); } public static Map toMap(JSONObject object) throws JSONException { Map map = new HashMap(); Iterator keys = object.keys(); while (keys.hasNext()) { String key = (String) keys.next(); map.put(key, fromJson(object.get(key))); } return map; } public static List toList(JSONArray array) throws JSONException { List list = new ArrayList(); for (int i = 0; i < array.length(); i++) { list.add(fromJson(array.get(i))); } return list; } private static Object fromJson(Object json) throws JSONException { if (json == JSONObject.NULL) { return null; } else if (json instanceof JSONObject) { return toMap((JSONObject) json); } else if (json instanceof JSONArray) { return toList((JSONArray) json); } else { return json; } } }