⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsonobject.java

📁 很好的json数据处理格式
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    }    /**     * Construct a JSONObject from a source JSON text string.     * This is the most commonly used JSONObject constructor.     * @param source    A string beginning     *  with <code>{</code>&nbsp;<small>(left brace)</small> and ending     *  with <code>}</code>&nbsp;<small>(right brace)</small>.     * @exception JSONException If there is a syntax error in the source      *  string or a duplicated key.     */    public JSONObject(String source) throws JSONException {        this(new JSONTokener(source));    }    /**     * Accumulate values under a key. It is similar to the put method except     * that if there is already an object stored under the key then a     * JSONArray is stored under the key to hold all of the accumulated values.     * If there is already a JSONArray, then the new value is appended to it.     * In contrast, the put method replaces the previous value.     * @param key   A key string.     * @param value An object to be accumulated under the key.     * @return this.     * @throws JSONException If the value is an invalid number     *  or if the key is null.     */    public JSONObject accumulate(String key, Object value)            throws JSONException {        testValidity(value);        Object o = opt(key);        if (o == null) {            put(key, value instanceof JSONArray ?                    new JSONArray().put(value) :                    value);        } else if (o instanceof JSONArray) {            ((JSONArray)o).put(value);        } else {            put(key, new JSONArray().put(o).put(value));        }        return this;    }    /**     * Append values to the array under a key. If the key does not exist in the     * JSONObject, then the key is put in the JSONObject with its value being a     * JSONArray containing the value parameter. If the key was already     * associated with a JSONArray, then the value parameter is appended to it.     * @param key   A key string.     * @param value An object to be accumulated under the key.     * @return this.     * @throws JSONException If the key is null or if the current value     *  associated with the key is not a JSONArray.     */    public JSONObject append(String key, Object value)            throws JSONException {        testValidity(value);        Object o = opt(key);        if (o == null) {            put(key, new JSONArray().put(value));        } else if (o instanceof JSONArray) {            put(key, ((JSONArray)o).put(value));        } else {            throw new JSONException("JSONObject[" + key +                    "] is not a JSONArray.");        }        return this;    }    /**     * Produce a string from a double. The string "null" will be returned if     * the number is not finite.     * @param  d A double.     * @return A String.     */    static public String doubleToString(double d) {        if (Double.isInfinite(d) || Double.isNaN(d)) {            return "null";        }// Shave off trailing zeros and decimal point, if possible.        String s = Double.toString(d);        if (s.indexOf('.') > 0 && s.indexOf('e') < 0 && s.indexOf('E') < 0) {            while (s.endsWith("0")) {                s = s.substring(0, s.length() - 1);            }            if (s.endsWith(".")) {                s = s.substring(0, s.length() - 1);            }        }        return s;    }    /**     * Get the value object associated with a key.     *     * @param key   A key string.     * @return      The object associated with the key.     * @throws   JSONException if the key is not found.     */    public Object get(String key) throws JSONException {        Object o = opt(key);        if (o == null) {            throw new JSONException("JSONObject[" + quote(key) +                    "] not found.");        }        return o;    }    /**     * Get the boolean value associated with a key.     *     * @param key   A key string.     * @return      The truth.     * @throws   JSONException     *  if the value is not a Boolean or the String "true" or "false".     */    public boolean getBoolean(String key) throws JSONException {        Object o = get(key);        if (o.equals(Boolean.FALSE) ||                (o instanceof String &&                ((String)o).equalsIgnoreCase("false"))) {            return false;        } else if (o.equals(Boolean.TRUE) ||                (o instanceof String &&                ((String)o).equalsIgnoreCase("true"))) {            return true;        }        throw new JSONException("JSONObject[" + quote(key) +                "] is not a Boolean.");    }    /**     * Get the double value associated with a key.     * @param key   A key string.     * @return      The numeric value.     * @throws JSONException if the key is not found or     *  if the value is not a Number object and cannot be converted to a number.     */    public double getDouble(String key) throws JSONException {        Object o = get(key);        try {            return o instanceof Number ?                ((Number)o).doubleValue() :                Double.valueOf((String)o).doubleValue();        } catch (Exception e) {            throw new JSONException("JSONObject[" + quote(key) +                "] is not a number.");        }    }    /**     * Get the int value associated with a key. If the number value is too     * large for an int, it will be clipped.     *     * @param key   A key string.     * @return      The integer value.     * @throws   JSONException if the key is not found or if the value cannot     *  be converted to an integer.     */    public int getInt(String key) throws JSONException {        Object o = get(key);        return o instanceof Number ?                ((Number)o).intValue() : (int)getDouble(key);    }    /**     * Get the JSONArray value associated with a key.     *     * @param key   A key string.     * @return      A JSONArray which is the value.     * @throws   JSONException if the key is not found or     *  if the value is not a JSONArray.     */    public JSONArray getJSONArray(String key) throws JSONException {        Object o = get(key);        if (o instanceof JSONArray) {            return (JSONArray)o;        }        throw new JSONException("JSONObject[" + quote(key) +                "] is not a JSONArray.");    }    /**     * Get the JSONObject value associated with a key.     *     * @param key   A key string.     * @return      A JSONObject which is the value.     * @throws   JSONException if the key is not found or     *  if the value is not a JSONObject.     */    public JSONObject getJSONObject(String key) throws JSONException {        Object o = get(key);        if (o instanceof JSONObject) {            return (JSONObject)o;        }        throw new JSONException("JSONObject[" + quote(key) +                "] is not a JSONObject.");    }    /**     * Get the long value associated with a key. If the number value is too     * long for a long, it will be clipped.     *     * @param key   A key string.     * @return      The long value.     * @throws   JSONException if the key is not found or if the value cannot     *  be converted to a long.     */    public long getLong(String key) throws JSONException {        Object o = get(key);        return o instanceof Number ?                ((Number)o).longValue() : (long)getDouble(key);    }    /**     * Get an array of field names from a JSONObject.     *     * @return An array of field names, or null if there are no names.     */    public static String[] getNames(JSONObject jo) {    	int length = jo.length();    	if (length == 0) {    		return null;    	}    	Iterator i = jo.keys();    	String[] names = new String[length];    	int j = 0;    	while (i.hasNext()) {    		names[j] = (String)i.next();    		j += 1;    	}        return names;    }    /**     * Get an array of field names from an Object.     *     * @return An array of field names, or null if there are no names.     */    public static String[] getNames(Object object) {    	if (object == null) {    		return null;    	}    	Class klass = object.getClass();    	Field[] fields = klass.getFields();    	int length = fields.length;    	if (length == 0) {    		return null;    	}    	String[] names = new String[length];    	for (int i = 0; i < length; i += 1) {    		names[i] = fields[i].getName();    	}        return names;    }    /**     * Get the string associated with a key.     *     * @param key   A key string.     * @return      A string which is the value.     * @throws   JSONException if the key is not found.     */    public String getString(String key) throws JSONException {        return get(key).toString();    }    /**     * Determine if the JSONObject contains a specific key.     * @param key   A key string.     * @return      true if the key exists in the JSONObject.     */    public boolean has(String key) {        return this.map.containsKey(key);    }    /**     * Determine if the value associated with the key is null or if there is     *  no value.     * @param key   A key string.     * @return      true if there is no value associated with the key or if     *  the value is the JSONObject.NULL object.     */    public boolean isNull(String key) {        return JSONObject.NULL.equals(opt(key));    }    /**     * Get an enumeration of the keys of the JSONObject.     *     * @return An iterator of the keys.     */    public Iterator keys() {        return this.map.keySet().iterator();    }    /**     * Get the number of keys stored in the JSONObject.     *     * @return The number of keys in the JSONObject.     */    public int length() {        return this.map.size();    }    /**     * Produce a JSONArray containing the names of the elements of this     * JSONObject.     * @return A JSONArray containing the key strings, or null if the JSONObject     * is empty.     */    public JSONArray names() {        JSONArray ja = new JSONArray();        Iterator  keys = keys();        while (keys.hasNext()) {            ja.put(keys.next());        }        return ja.length() == 0 ? null : ja;    }    /**     * Produce a string from a Number.     * @param  n A Number     * @return A String.     * @throws JSONException If n is a non-finite number.     */    static public String numberToString(Number n)            throws JSONException {        if (n == null) {            throw new JSONException("Null pointer");        }        testValidity(n);// Shave off trailing zeros and decimal point, if possible.        String s = n.toString();        if (s.indexOf('.') > 0 && s.indexOf('e') < 0 && s.indexOf('E') < 0) {            while (s.endsWith("0")) {                s = s.substring(0, s.length() - 1);            }            if (s.endsWith(".")) {                s = s.substring(0, s.length() - 1);            }        }        return s;    }    /**     * Get an optional value associated with a key.     * @param key   A key string.     * @return      An object which is the value, or null if there is no value.     */    public Object opt(String key) {        return key == null ? null : this.map.get(key);    }    /**     * Get an optional boolean associated with a key.     * It returns false if there is no such key, or if the value is not     * Boolean.TRUE or the String "true".     *     * @param key   A key string.     * @return      The truth.     */    public boolean optBoolean(String key) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -