Android Open Source - cube-sdk Json Data






From Project

Back to project page cube-sdk.

License

The source code is released under:

Apache License

If you think the Android project cube-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package in.srain.cube.request;
//w  w w.  ja v  a2s.com
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;

import java.util.*;

@SuppressWarnings("rawtypes")
public final class JsonData {

    private Object mJson;
    private static final String EMPTY_STRING = "";

    public static JsonData newMap() {
        return create(new HashMap<String, Object>());
    }

    public static JsonData newList() {
        return create(new ArrayList<Object>());
    }

    public static JsonData create(String str) {
        Object object = null;
        if (str != null && str.length() >= 0) {
            try {
                JSONTokener jsonTokener = new JSONTokener(str);
                object = jsonTokener.nextValue();
            } catch (Exception e) {
            }
        }
        return create(object);
    }

    public static JsonData create(Object o) {
        JsonData json = new JsonData();
        if (o instanceof JSONArray || o instanceof JSONObject) {
            json.mJson = o;
        }
        if (o instanceof Map) {
            json.mJson = new JSONObject((Map) o);
        }
        if (o instanceof Collection) {
            json.mJson = new JSONArray((Collection) o);
        }
        return json;
    }

    public Object getRawData() {
        return mJson;
    }

    public JsonData optJson(String name) {

        Object ret = null;
        if (mJson instanceof JSONObject) {
            ret = ((JSONObject) mJson).opt(name);
        }
        return JsonData.create(ret);
    }

    public JsonData optJson(int index) {

        Object ret = null;
        if (mJson instanceof JSONArray) {
            ret = ((JSONArray) mJson).opt(index);
        }
        return JsonData.create(ret);
    }

    public String optString(String name) {
        return optMapOrNew().optString(name);
    }

    public String optString(String name, String fallback) {
        return optMapOrNew().optString(name, fallback);
    }

    public String optString(int index) {
        return optArrayOrNew().optString(index);
    }

    public String optString(int index, String fallback) {
        return optArrayOrNew().optString(index, fallback);
    }

    public int optInt(String name) {
        return optMapOrNew().optInt(name);
    }

    public int optInt(String name, int fallback) {
        return optMapOrNew().optInt(name, fallback);
    }

    public int optInt(int index) {
        return optArrayOrNew().optInt(index);
    }

    public int optInt(int index, int fallback) {
        return optArrayOrNew().optInt(index, fallback);
    }

    public boolean optBoolean(String name) {
        return optMapOrNew().optBoolean(name);
    }

    public boolean optBoolean(String name, boolean fallback) {
        return optMapOrNew().optBoolean(name, fallback);
    }

    public boolean optBoolean(int index) {
        return optArrayOrNew().optBoolean(index);
    }

    public boolean optBoolean(int index, boolean fallback) {
        return optArrayOrNew().optBoolean(index, fallback);
    }

    public double optDouble(String name) {
        return optMapOrNew().optDouble(name);
    }

    public double optDouble(String name, double fallback) {
        return optMapOrNew().optDouble(name, fallback);
    }

    public double optDouble(int index) {
        return optArrayOrNew().optDouble(index);
    }

    public double optDouble(int index, double fallback) {
        return optArrayOrNew().optDouble(index, fallback);
    }

    public boolean has(String name) {
        return optMapOrNew().has(name);
    }

    public boolean has(int index) {
        return optArrayOrNew().length() > index;
    }

    public JSONObject optMapOrNew() {
        if (mJson instanceof JSONObject) {
            return (JSONObject) mJson;
        }
        return new JSONObject();
    }

    private Object valueForPut(Object value) {
        if (value instanceof JsonData) {
            return ((JsonData) value).getRawData();
        } else {
            return value;
        }
    }

    public void put(String key, Object value) {
        if (mJson instanceof JSONObject) {
            try {
                ((JSONObject) mJson).put(key, valueForPut(value));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

    public void put(Object value) {
        if (mJson instanceof JSONArray) {
            ((JSONArray) mJson).put(valueForPut(value));
        }
    }

    public void put(int index, Object value) {
        if (mJson instanceof JSONArray) {
            try {
                ((JSONArray) mJson).put(index, valueForPut(value));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

    public JsonData editMap(int index) {
        if (has(index)) {
            return optJson(index);
        }
        JsonData map = JsonData.newMap();
        put(index, map);
        return map;
    }

    public JsonData editMap() {
        JsonData map = JsonData.newMap();
        put(map);
        return map;
    }

    public JsonData editMap(String key) {
        if (has(key)) {
            return optJson(key);
        }
        JsonData map = JsonData.newMap();
        put(key, map);
        return map;
    }

    public JsonData editList(String key) {
        if (has(key)) {
            return optJson(key);
        }
        JsonData list = JsonData.newList();
        put(key, list);
        return list;
    }

    public JsonData editList(int index) {
        if (has(index)) {
            return optJson(index);
        }
        JsonData list = JsonData.newList();
        put(index, list);
        return list;
    }

    public JsonData editList() {
        JsonData list = JsonData.newList();
        put(list);
        return list;
    }

    public JSONArray optArrayOrNew() {
        if (mJson instanceof JSONArray) {
            return (JSONArray) mJson;
        }
        return new JSONArray();
    }

    public int length() {
        if (mJson instanceof JSONArray) {
            return ((JSONArray) mJson).length();
        }
        if (mJson instanceof JSONObject) {
            return ((JSONObject) mJson).length();
        }
        return 0;
    }

    @SuppressWarnings("unchecked")
    public Iterator<String> keys() {
        return optMapOrNew().keys();
    }

    public String toString() {
        if (mJson instanceof JSONArray) {
            return ((JSONArray) mJson).toString();
        } else if (mJson instanceof JSONObject) {
            return ((JSONObject) mJson).toString();
        }
        return EMPTY_STRING;
    }

    public ArrayList<JsonData> toArrayList() {
        ArrayList<JsonData> arrayList = new ArrayList<JsonData>();
        if (mJson instanceof JSONArray) {
            final JSONArray array = (JSONArray) mJson;
            for (int i = 0; i < array.length(); i++) {
                arrayList.add(i, JsonData.create(array.opt(i)));
            }
        } else if (mJson instanceof JSONObject) {
            final JSONObject json = (JSONObject) mJson;

            Iterator it = json.keys();

            while (it.hasNext()) {
                String key = (String) it.next();
                arrayList.add(JsonData.create(json.opt(key)));
            }
        }
        return arrayList;
    }
}




Java Source Code List

in.srain.cube.Cube.java
in.srain.cube.app.CubeFragmentActivity.java
in.srain.cube.app.CubeFragment.java
in.srain.cube.app.FragmentParam.java
in.srain.cube.app.ICubeFragment.java
in.srain.cube.app.XActivity.java
in.srain.cube.app.lifecycle.IComponentContainer.java
in.srain.cube.app.lifecycle.LifeCycleComponentManager.java
in.srain.cube.app.lifecycle.LifeCycleComponent.java
in.srain.cube.cache.CacheInfo.java
in.srain.cube.cache.CacheManager.java
in.srain.cube.cache.CacheResultType.java
in.srain.cube.cache.ICacheAble.java
in.srain.cube.cache.IFileCache.java
in.srain.cube.cache.QueryHandler.java
in.srain.cube.cache.Query.java
in.srain.cube.concurrent.BlockingDeque.java
in.srain.cube.concurrent.Deque.java
in.srain.cube.concurrent.LinkedBlockingDeque.java
in.srain.cube.concurrent.SimpleExecutor.java
in.srain.cube.concurrent.SimpleTask.java
in.srain.cube.file.DiskLruCache.java
in.srain.cube.file.FileUtil.java
in.srain.cube.file.LruFileCache.java
in.srain.cube.image.CubeImageView.java
in.srain.cube.image.ImageLoaderFactory.java
in.srain.cube.image.ImageLoader.java
in.srain.cube.image.ImagePerformanceStatistics.java
in.srain.cube.image.ImageProvider.java
in.srain.cube.image.ImageReuseInfoManger.java
in.srain.cube.image.ImageReuseInfo.java
in.srain.cube.image.ImageTaskStatistics.java
in.srain.cube.image.ImageTask.java
in.srain.cube.image.drawable.RecyclingBitmapDrawable.java
in.srain.cube.image.drawable.RoundedDrawable.java
in.srain.cube.image.iface.ImageFileProvider.java
in.srain.cube.image.iface.ImageLoadHandler.java
in.srain.cube.image.iface.ImageLoadProgressHandler.java
in.srain.cube.image.iface.ImageMemoryCache.java
in.srain.cube.image.iface.ImageResizer.java
in.srain.cube.image.iface.ImageTaskExecutor.java
in.srain.cube.image.impl.DefaultImageLoadHandler.java
in.srain.cube.image.impl.DefaultImageResizer.java
in.srain.cube.image.impl.DefaultImageTaskExecutor.java
in.srain.cube.image.impl.DefaultMemoryCache.java
in.srain.cube.image.impl.LruImageFileProvider.java
in.srain.cube.image.impl.SimpleDownloader.java
in.srain.cube.mints.base.BlockMenuFragment.java
in.srain.cube.mints.base.DemoBaseActivity.java
in.srain.cube.mints.base.TitleBaseActivity.java
in.srain.cube.mints.base.TitleBaseFragment.java
in.srain.cube.mints.base.TitleHeaderBar.java
in.srain.cube.request.CacheAbleRequestDefaultHandler.java
in.srain.cube.request.CacheAbleRequestHandler.java
in.srain.cube.request.CacheAbleRequestJsonHandler.java
in.srain.cube.request.CacheAbleRequest.java
in.srain.cube.request.FailData.java
in.srain.cube.request.ICacheAbleRequest.java
in.srain.cube.request.IRequest.java
in.srain.cube.request.JsonData.java
in.srain.cube.request.RequestBase.java
in.srain.cube.request.RequestCacheManager.java
in.srain.cube.request.RequestData.java
in.srain.cube.request.RequestDefaultHandler.java
in.srain.cube.request.RequestFinishHandler.java
in.srain.cube.request.RequestHandler.java
in.srain.cube.request.RequestJsonHandler.java
in.srain.cube.request.SimpleJsonRequest.java
in.srain.cube.request.SimpleRequestManager.java
in.srain.cube.request.SimpleRequest.java
in.srain.cube.uri.CustomizedUri.java
in.srain.cube.util.Debug.java
in.srain.cube.util.Encrypt.java
in.srain.cube.util.Env.java
in.srain.cube.util.LocalDisplay.java
in.srain.cube.util.NetworkStatusManager.java
in.srain.cube.util.ResourceMan.java
in.srain.cube.util.SystemWatcher.java
in.srain.cube.util.Version.java
in.srain.cube.views.DotView.java
in.srain.cube.views.IScrollHeaderFrameHandler.java
in.srain.cube.views.MoreActionView.java
in.srain.cube.views.ScrollHeaderFrame.java
in.srain.cube.views.banner.BannerAdapter.java
in.srain.cube.views.banner.PagerIndicator.java
in.srain.cube.views.banner.SliderBanner.java
in.srain.cube.views.block.BlockListAdapter.java
in.srain.cube.views.block.BlockListView.java
in.srain.cube.views.list.ListPageInfo.java
in.srain.cube.views.list.ListViewDataAdapterBase.java
in.srain.cube.views.list.ListViewDataAdapter.java
in.srain.cube.views.list.PagedListDataModel.java
in.srain.cube.views.list.PagedListViewDataAdapter.java
in.srain.cube.views.list.ViewHolderBase.java
in.srain.cube.views.list.ViewHolderCreator.java
in.srain.cube.views.mix.AutoPlayer.java
in.srain.cube.views.pager.PageIndicator.java
in.srain.cube.views.pager.TabPageIndicator.java