public static JSONValue parseJSONValue(ParseState parseState) { if (parseState.skipWhite()) { char c = parseState.current(); switch (c) { case '{': return JSONObject.parseJSON(parseState); case '"': return JSONString.parseJSON(parseState); case '[': return JSONArray.parseJSON(parseState); case 'n': return JSONNull.parseJSON(parseState); case 't': case 'f': return JSONBoolean.parseJSON(parseState); default: if ((c >= '0' && c <= '9') || c == '-' || c == '.' || c == 'N') // NaN ok return JSONNumber.parseJSON(parseState); break; } } return null; }