@Override public void setArrayIndex(final Object array, final int index, final Object newValue) { Object v = newValue == null ? JSONObject.NULL : newValue; JSONArray list = (JSONArray) array; list.put(index, v); }
@Override public Collection<String> getPropertyKeys(final Object obj) { return ((JSONObject) obj).keys(); }
@Override public Object createMap() { return new JSONObject(); }
@Override public int length(final Object obj) { if (obj instanceof JSONArray) { return ((JSONArray) obj).length(); } else if (obj instanceof JSONObject) { return ((JSONObject) obj).length(); } else { throw new IllegalArgumentException("Cannot determine length of " + obj + ", unsupported type."); } }
@Override public Object createArray() { return new JSONArray(); }
@Override public void setProperty(final Object obj, final Object key, final Object value) { Object v = value == null ? JSONObject.NULL : value; if (isMap(obj)) { ((JSONObject) obj).put(key.toString(), v); } }
@Test public void an_object_can_be_read() { JSONObject book = using(TAPESTRY_JSON_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0]"); assertThat(book.get("author").toString()).isEqualTo("Nigel Rees"); }
@Override public Object getArrayIndex(final Object obj, final int idx) { return ((JSONArray) obj).get(idx); }
@Override public String toJson(final Object obj) { return ((JSONCollection) obj).toCompactString(); }
@Test public void a_filter_can_be_applied() { JSONArray fictionBooks = using(TAPESTRY_JSON_CONFIGURATION).parse(JSON_DOCUMENT) .read("$.store.book[?(@.category == 'fiction')]"); assertThat(fictionBooks.length()).isEqualTo(3); }
@Override public Object parse(final String json) throws InvalidJsonException { return new JSONObject(json); }
@Override public int length(final Object obj) { if (obj instanceof JSONArray) { return ((JSONArray) obj).length(); } else if (obj instanceof JSONObject) { return ((JSONObject) obj).length(); } else { throw new IllegalArgumentException("Cannot determine length of " + obj + ", unsupported type."); } }
@Override public Object createArray() { return new JSONArray(); }
@Override public void setArrayIndex(final Object array, final int index, final Object newValue) { Object v = newValue == null ? JSONObject.NULL : newValue; JSONArray list = (JSONArray) array; list.put(index, v); }
@Override public Collection<String> getPropertyKeys(final Object obj) { return ((JSONObject) obj).keys(); }
@Override public Object getArrayIndex(final Object obj, final int idx) { return ((JSONArray) obj).get(idx); }
@Override public String toJson(final Object obj) { return ((JSONCollection) obj).toCompactString(); }
@Override public Object parse(final String json) throws InvalidJsonException { return new JSONObject(json); }