MasterObjectData.java 4.39 KB

/*
 * Copyright (c) Wondertek Technologies Co., Ltd. 2019-2022. All rights reserved.
 */

package com.wd.foundation.bean.response;

import java.io.Serializable;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;

public class MasterObjectData extends LinkedHashMap<String, Object> implements Serializable {
    private static final String TAG = "MasterObjectData";

    public MasterObjectData() {
    }

    public void transform(Object o) {
    }

    public String getString(String key) {
        Object ret = this.get(key);
        return ret == null ? "" : ret.toString();
    }

    public int getInt(String key) {
        Object ret = this.get(key);
        if (ret == null) {
            return 0;
        } else {
            try {
                Double value = Double.valueOf(ret.toString());
                return value.intValue();
            } catch (Exception var4) {
                return 0;
            }
        }
    }

    public double getDouble(String key) {
        Object ret = this.get(key);
        if (ret == null) {
            return 0.0D;
        } else {
            try {
                return Double.valueOf(ret.toString());
            } catch (Exception var4) {
                return 0.0D;
            }
        }
    }

    public float getFloat(String key) {
        Object ret = this.get(key);
        if (ret == null) {
            return 0.0F;
        } else {
            try {
                return Float.valueOf(ret.toString());
            } catch (Exception var4) {
                return 0.0F;
            }
        }
    }

    public boolean getBoolean(String key) {
        Object ret = this.get(key);
        if (ret == null) {
            return false;
        } else {
            try {
                if ("0".equals(ret)) {
                    return false;
                } else {
                    return "1".equals(ret) ? true : Boolean.getBoolean(ret.toString());
                }
            } catch (Exception var4) {
                return false;
            }
        }
    }

    public <T> T getObject(String key) {
        Object ret = get(key);
        if (ret == null) {
            return null;
        }

        return (T) ret;
    }

    public <T> T getObject(String key, Class<T> clazz) {
        Map ret = getObject(key);
        if (ret == null || clazz == null) {
            return null;
        }
        return convertJsonToObject(convertObjectToJson(ret), clazz);
    }

    @Override
    public Object clone() {
        MasterObjectData masterObjectData = new MasterObjectData();
        Iterator keyIt = this.keySet().iterator();

        while (keyIt.hasNext()) {
            String key = (String) keyIt.next();
            masterObjectData.put(key, this.get(key));
        }

        return masterObjectData;
    }

    /**
     * 获取MasterObjectData对象
     * 
     * @param jsonStr json字符串
     * @return map对象
     */
    public static MasterObjectData changeJsonStringToMap(String jsonStr) {
        MasterObjectData map = new MasterObjectData();
        JSONObject jsonObject = null;
        try {
            jsonObject = JSONObject.parseObject(jsonStr);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        if (jsonObject == null) {
            return map;
        }
        Iterator<String> it = jsonObject.keySet().iterator();
        if (!it.hasNext()) {
            return map;
        }
        try {
            while (it.hasNext()) {
                String key = it.next();
                Object value = jsonObject.get(key);
                map.put(key, value);
            }
            return map;
        } catch (JSONException ee) {
            ee.printStackTrace();
        }
        return map;
    }

    static <T> T convertJsonToObject(String json, Class<T> clazz) {
        T object = null;
        try {
            object = JSON.parseObject(json, clazz);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return object;
    }

    static String convertObjectToJson(Object root) {
        new org.json.JSONObject().toString();
        String resultString = "";
        try {
            resultString = JSON.toJSONString(root);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultString;
    }

}