mirror of
https://github.com/ethauvin/JSON-java.git
synced 2025-06-17 07:50:52 -07:00
Allow user to invoke query and optQuery ,with a JSONPointer,directly
from JSONArray or JSONObject
This commit is contained in:
parent
724fb888f7
commit
9e0fc5e680
2 changed files with 73 additions and 6 deletions
|
@ -980,7 +980,30 @@ public class JSONArray implements Iterable<Object> {
|
|||
* @return the item matched by the JSONPointer, otherwise null
|
||||
*/
|
||||
public Object query(String jsonPointer) {
|
||||
return new JSONPointer(jsonPointer).queryFrom(this);
|
||||
return query(new JSONPointer(jsonPointer));
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses a uaer initialized JSONPointer and tries to
|
||||
* match it to an item whithin this JSONArray. For example, given a
|
||||
* JSONArray initialized with this document:
|
||||
* <pre>
|
||||
* [
|
||||
* {"b":"c"}
|
||||
* ]
|
||||
* </pre>
|
||||
* and this JSONPointer:
|
||||
* <pre>
|
||||
* "/0/b"
|
||||
* </pre>
|
||||
* Then this method will return the String "c"
|
||||
* A JSONPointerException may be thrown from code called by this method.
|
||||
*
|
||||
* @param jsonPointer string that can be used to create a JSONPointer
|
||||
* @return the item matched by the JSONPointer, otherwise null
|
||||
*/
|
||||
public Object query(JSONPointer jsonPointer) {
|
||||
return jsonPointer.queryFrom(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -992,9 +1015,20 @@ public class JSONArray implements Iterable<Object> {
|
|||
* @throws IllegalArgumentException if {@code jsonPointer} has invalid syntax
|
||||
*/
|
||||
public Object optQuery(String jsonPointer) {
|
||||
JSONPointer pointer = new JSONPointer(jsonPointer);
|
||||
return query(new JSONPointer(jsonPointer));
|
||||
}
|
||||
|
||||
/**
|
||||
* Queries and returns a value from this object using {@code jsonPointer}, or
|
||||
* returns null if the query fails due to a missing key.
|
||||
*
|
||||
* @param The JSON pointer
|
||||
* @return the queried value or {@code null}
|
||||
* @throws IllegalArgumentException if {@code jsonPointer} has invalid syntax
|
||||
*/
|
||||
public Object optQuery(JSONPointer jsonPointer) {
|
||||
try {
|
||||
return pointer.queryFrom(this);
|
||||
return jsonPointer.queryFrom(this);
|
||||
} catch (JSONPointerException e) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -1359,7 +1359,29 @@ public class JSONObject {
|
|||
* @return the item matched by the JSONPointer, otherwise null
|
||||
*/
|
||||
public Object query(String jsonPointer) {
|
||||
return new JSONPointer(jsonPointer).queryFrom(this);
|
||||
return query(new JSONPointer(jsonPointer));
|
||||
}
|
||||
/**
|
||||
* Uses a uaer initialized JSONPointer and tries to
|
||||
* match it to an item within this JSONObject. For example, given a
|
||||
* JSONObject initialized with this document:
|
||||
* <pre>
|
||||
* {
|
||||
* "a":{"b":"c"}
|
||||
* }
|
||||
* </pre>
|
||||
* and this JSONPointer:
|
||||
* <pre>
|
||||
* "/a/b"
|
||||
* </pre>
|
||||
* Then this method will return the String "c".
|
||||
* A JSONPointerException may be thrown from code called by this method.
|
||||
*
|
||||
* @param jsonPointer string that can be used to create a JSONPointer
|
||||
* @return the item matched by the JSONPointer, otherwise null
|
||||
*/
|
||||
public Object query(JSONPointer jsonPointer) {
|
||||
return jsonPointer.queryFrom(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1371,9 +1393,20 @@ public class JSONObject {
|
|||
* @throws IllegalArgumentException if {@code jsonPointer} has invalid syntax
|
||||
*/
|
||||
public Object optQuery(String jsonPointer) {
|
||||
JSONPointer pointer = new JSONPointer(jsonPointer);
|
||||
return optQuery(new JSONPointer(jsonPointer));
|
||||
}
|
||||
|
||||
/**
|
||||
* Queries and returns a value from this object using {@code jsonPointer}, or
|
||||
* returns null if the query fails due to a missing key.
|
||||
*
|
||||
* @param The JSON pointer
|
||||
* @return the queried value or {@code null}
|
||||
* @throws IllegalArgumentException if {@code jsonPointer} has invalid syntax
|
||||
*/
|
||||
public Object optQuery(JSONPointer jsonPointer) {
|
||||
try {
|
||||
return pointer.queryFrom(this);
|
||||
return jsonPointer.queryFrom(this);
|
||||
} catch (JSONPointerException e) {
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue