JsonMap implements Iterable<Map.Entry<String, JsonValue>>, JsonSerializable { @NonNull public JsonValue opt(@NonNull String key) { JsonValue value = get(key); if (value != null) { return value; } return JsonValue.NULL; } JsonMap(@Nullable Map<String, JsonValue> map); @NonNull static Builder newBuilder(); boolean containsKey(@NonNull String key); boolean containsValue(@NonNull JsonValue value); @NonNull Set<Map.Entry<String, JsonValue>> entrySet(); @Nullable JsonValue get(@NonNull String key); @NonNull JsonValue opt(@NonNull String key); boolean isEmpty(); @NonNull Set<String> keySet(); int size(); @NonNull Collection<JsonValue> values(); @NonNull Map<String, JsonValue> getMap(); @Override boolean equals(@Nullable Object object); @Override int hashCode(); @NonNull @Override String toString(); @NonNull @Override Iterator<Map.Entry<String, JsonValue>> iterator(); @NonNull @Override JsonValue toJsonValue(); @NonNull
    static final JsonMap EMPTY_MAP; }
@Test public void testOpt() throws JSONException, JsonException { assertEquals("some-value", jsonMap.opt("some-key").getString()); assertTrue(jsonMap.opt("Not in map").isNull()); }