JsonValue implements Parcelable, JsonSerializable { @NonNull public static JsonValue parseString(@Nullable String jsonString) throws JsonException { if (UAStringUtil.isEmpty(jsonString)) { return JsonValue.NULL; } JSONTokener tokener = new JSONTokener(jsonString); try { return JsonValue.wrap(tokener.nextValue()); } catch (JSONException e) { throw new JsonException("Unable to parse string", e); } } private  JsonValue(@Nullable Object value); @Nullable Object getValue(); @Nullable String getString(); @NonNull String getString(@NonNull String defaultValue); @NonNull String optString(); int getInt(int defaultValue); float getFloat(float defaultValue); double getDouble(double defaultValue); long getLong(long defaultValue); @Nullable Number getNumber(); boolean getBoolean(boolean defaultValue); @Nullable JsonList getList(); @NonNull JsonList optList(); @Nullable JsonMap getMap(); @NonNull JsonMap optMap(); boolean isNull(); boolean isString(); boolean isInteger(); boolean isDouble(); boolean isFloat(); boolean isLong(); boolean isNumber(); boolean isBoolean(); boolean isJsonMap(); boolean isJsonList(); @NonNull static JsonValue parseString(@Nullable String jsonString); @Override boolean equals(@Nullable Object object); @Override int hashCode(); @NonNull @Override String toString(); @NonNull static JsonValue wrap(@Nullable String value); @NonNull static JsonValue wrap(char value); @NonNull static JsonValue wrap(int value); @NonNull static JsonValue wrap(long value); @NonNull static JsonValue wrap(boolean value); @NonNull static JsonValue wrap(double value); @NonNull static JsonValue wrap(@Nullable JsonSerializable value); @NonNull static JsonValue wrapOpt(@Nullable Object object); @NonNull static JsonValue wrap(@Nullable Object object, @NonNull JsonValue defaultValue); @NonNull static JsonValue wrap(@Nullable Object object); @Override int describeContents(); @Override void writeToParcel(@NonNull Parcel dest, int flags); @NonNull @Override JsonValue toJsonValue(); @NonNull
    final static JsonValue NULL; @NonNull
    static final Parcelable.Creator<JsonValue> CREATOR; }
@Test public void testParseString() throws JsonException, JSONException { assertEquals(JsonValue.wrap("Hello"), JsonValue.parseString("\"Hello\"")); assertEquals(JsonValue.wrap(1), JsonValue.parseString("1")); assertEquals(JsonValue.wrap(true), JsonValue.parseString("true")); assertEquals(JsonValue.wrap(false), JsonValue.parseString("false")); assertEquals(JsonValue.wrap(Long.MAX_VALUE), JsonValue.parseString(String.valueOf(Long.MAX_VALUE))); assertEquals(JsonValue.wrap(1.4), JsonValue.parseString(String.valueOf(1.4))); assertEquals(JsonValue.NULL, JsonValue.parseString("null")); assertEquals(JsonValue.NULL, JsonValue.parseString(null)); assertEquals(new JsonMap(null), JsonValue.parseString("{}").getMap()); assertEquals(new JsonList(null), JsonValue.parseString("[]").getList()); JSONObject json = new JSONObject(primitiveMap); json.put("map", new JSONObject(primitiveMap)); json.put("collection", new JSONArray(primitiveList)); assertEquals(JsonValue.wrap(json), JsonValue.parseString(json.toString())); JSONArray jsonArray = new JSONArray(primitiveList); assertEquals(JsonValue.wrap(jsonArray), JsonValue.parseString(jsonArray.toString())); }