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

📄 jsonarray.java

📁 json-rpc是和DWR类似的ajax-rpc实现。我比较细化
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.json;import java.text.ParseException;import java.util.ArrayList;import java.util.Collection;import java.util.NoSuchElementException;/** * A JSONArray is an ordered sequence of values. Its external form is a string * wrapped in square brackets with commas between the values. The internal form * is an object having get() and opt() methods for accessing the values by * index, and put() methods for adding or replacing values. The values can be * any of these types: Boolean, JSONArray, JSONObject, Number, String, or the * JSONObject.NULL object. * <p> * The constructor can convert a JSON external form string into an * internal form Java object. The toString() method creates an external * form string. * <p> * A get() method returns a value if one can be found, and throws an exception * if one cannot be found. An opt() method returns a default value instead of * throwing an exception, and so is useful for obtaining optional values. * <p> * The generic get() and opt() methods return an object which you can cast or * query for type. There are also typed get() and opt() methods that do typing * checking and type coersion for you. * <p> * The texts produced by the toString() methods are very strict. * The constructors are more forgiving in the texts they will accept. * <ul> * <li>An extra comma may appear just before the closing bracket.</li> * <li>Strings may be quoted with single quotes.</li> * <li>Strings do not need to be quoted at all if they do not contain leading *     or trailing spaces, and if they do not contain any of these characters: *     { } [ ] / \ : , </li> * <li>Numbers may have the 0- (octal) or 0x- (hex) prefix.</li> * </ul> * <p> * Public Domain 2002 JSON.org * @author JSON.org * @version 0.1 */public class JSONArray {    /**     * The getArrayList where the JSONArray's properties are kept.     */    private ArrayList myArrayList;    /**     * Construct an empty JSONArray.     */    public JSONArray() {        myArrayList = new ArrayList();    }    /**     * Construct a JSONArray from a JSONTokener.     * @exception ParseException A JSONArray must start with '['     * @exception ParseException Expected a ',' or ']'     * @param x A JSONTokener     */    public JSONArray(JSONTokener x) throws ParseException {        this();        if (x.nextClean() != '[') {            throw x.syntaxError("A JSONArray must start with '['");        }        if (x.nextClean() == ']') {            return;        }        x.back();        while (true) {            myArrayList.add(x.nextValue());            switch (x.nextClean()) {            case ',':                if (x.nextClean() == ']') {                    return;                }                x.back();                break;            case ']':                return;            default:                throw x.syntaxError("Expected a ',' or ']'");            }        }    }    /**     * Construct a JSONArray from a source string.     * @exception ParseException The string must conform to JSON syntax.     * @param string     A string that begins with '[' and ends with ']'.     */    public JSONArray(String string) throws ParseException {        this(new JSONTokener(string));    }    /**     * Construct a JSONArray from a Collection.     * @param collection     A Collection.     */    public JSONArray(Collection collection) {        myArrayList = new ArrayList(collection);    }    /**     * Get the object value associated with an index.     * @exception NoSuchElementException     * @param index subscript     *  The index must be between 0 and length() - 1.     * @return An object value.     */    public Object get(int index) throws NoSuchElementException {        Object o = opt(index);        if (o == null) {            throw new NoSuchElementException("JSONArray[" + index +                "] not found.");        }        return o;    }    /**     * Get the ArrayList which is holding the elements of the JSONArray.     * @return      The ArrayList.     */    ArrayList getArrayList() {        return myArrayList;    }    /**     * Get the boolean value associated with an index.     * The string values "true" and "false" are converted to boolean.     *     * @exception NoSuchElementException if the index is not found     * @exception ClassCastException     * @param index subscript     * @return      The truth.     */    public boolean getBoolean(int index)            throws ClassCastException, NoSuchElementException {        Object o = get(index);        if (o == Boolean.FALSE || o.equals("false")) {            return false;        } else if (o == Boolean.TRUE || o.equals("true")) {            return true;        }        throw new ClassCastException("JSONArray[" + index +            "] not a Boolean.");    }    /**     * Get the double value associated with an index.     * @exception NoSuchElementException if the key is not found     * @exception NumberFormatException     *  if the value cannot be converted to a number.     *     * @param index subscript     * @return      The value.     */    public double getDouble(int index)            throws NoSuchElementException, NumberFormatException {        Object o = get(index);        if (o instanceof Number) {            return ((Number) o).doubleValue();        }        if (o instanceof String) {            return new Double((String)o).doubleValue();        }        throw new NumberFormatException("JSONObject[" +            index + "] is not a number.");    }    /**     * Get the int value associated with an index.     * @exception NoSuchElementException if the key is not found     * @exception NumberFormatException     *  if the value cannot be converted to a number.     *     * @param index subscript     * @return      The value.     */    public int getInt(int index)            throws NoSuchElementException, NumberFormatException {        Object o = get(index);        if (o instanceof Number) {            return ((Number)o).intValue();        }        return (int)getDouble(index);    }    /**     * Get the JSONArray associated with an index.     * @exception NoSuchElementException if the index is not found or if the     * value is not a JSONArray     * @param index subscript     * @return      A JSONArray value.     */    public JSONArray getJSONArray(int index) throws NoSuchElementException {        Object o = get(index);        if (o instanceof JSONArray) {            return (JSONArray)o;        }        throw new NoSuchElementException("JSONArray[" + index +                "] is not a JSONArray.");    }    /**     * Get the JSONObject associated with an index.     * @exception NoSuchElementException if the index is not found or if the     * value is not a JSONObject     * @param index subscript     * @return      A JSONObject value.     */    public JSONObject getJSONObject(int index) throws NoSuchElementException {        Object o = get(index);        if (o instanceof JSONObject) {            return (JSONObject)o;        }        throw new NoSuchElementException("JSONArray[" + index +            "] is not a JSONObject.");    }    /**     * Get the string associated with an index.     * @exception NoSuchElementException     * @param index subscript     * @return      A string value.     */    public String getString(int index) throws NoSuchElementException {        return get(index).toString();    }    /**     * Determine if the value is null.     * @param index subscript     * @return true if the value at the index is null, or if there is no value.     */    public boolean isNull(int index) {        Object o = opt(index);        return o == null || o.equals(null);    }    /**     * Make a string from the contents of this JSONArray. The separator string     * is inserted between each element.     * Warning: This method assumes that the data structure is acyclical.     * @param separator A string that will be inserted between the elements.     * @return a string.     */    public String join(String separator) {        int i;        Object o;        StringBuffer sb = new StringBuffer();        for (i = 0; i < myArrayList.size(); i += 1) {            if (i > 0) {                sb.append(separator);            }            o = myArrayList.get(i);            if (o == null) {                sb.append("null");            } else if (o instanceof String) {                sb.append(JSONObject.quote((String)o));            } else if (o instanceof Number) {                sb.append(JSONObject.numberToString((Number)o));            } else {                sb.append(o.toString());            }        }        return sb.toString();    }    /**     * Get the length of the JSONArray.     *     * @return The length (or size).     */    public int length() {        return myArrayList.size();    }    /**     * Get the optional object value associated with an index.     * @param index subscript     * @return      An object value, or null if there is no     *              object at that index.     */    public Object opt(int index) {        if (index < 0 || index >= length()) {            return null;        } else {            return myArrayList.get(index);        }    }    /**     * Get the optional boolean value associated with an index.     * It returns false if there is no value at that index,     * or if the value is not Boolean.TRUE or the String "true".     *     * @param index subscript     * @return      The truth.     */    public boolean optBoolean(int index)  {        return optBoolean(index, false);    }    /**     * Get the optional boolean value associated with an index.     * It returns the defaultValue if there is no value at that index or if it is not     * a Boolean or the String "true" or "false".     *     * @param index subscript     * @param defaultValue     A boolean default.     * @return      The truth.     */    public boolean optBoolean(int index, boolean defaultValue)  {        Object o = opt(index);        if (o != null) {            if (o == Boolean.FALSE || o.equals("false")) {                return false;            } else if (o == Boolean.TRUE || o.equals("true")) {                return true;            }        }        return defaultValue;    }    /**

⌨️ 快捷键说明

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