Class JSONRPC2Parser
- java.lang.Object
-
- com.thetransactioncompany.jsonrpc2.JSONRPC2Parser
-
public class JSONRPC2Parser extends Object
Parses JSON-RPC 2.0 request, notification and response messages.Parsing of batched requests / notifications is not supported.
This class is not thread-safe. A parser instance should not be used by more than one thread unless properly synchronised. Alternatively, you may use the thread-safe
JSONRPC2Message.parse(java.lang.String)and its sister methods.Example:
String jsonString = "{\"method\":\"makePayment\"," + "\"params\":{\"recipient\":\"Penny Adams\",\"amount\":175.05}," + "\"id\":\"0001\","+ "\"jsonrpc\":\"2.0\"}"; JSONRPC2Request req = null; JSONRPC2Parser parser = new JSONRPC2Parser(); try { req = parser.parseJSONRPC2Request(jsonString); } catch (JSONRPC2ParseException e) { // handle exception }The mapping between JSON and Java entities (as defined by the underlying JSON Smart library):
true|false <---> java.lang.Boolean number <---> java.lang.Number string <---> java.lang.String array <---> java.util.List object <---> java.util.Map null <---> null- Author:
- Vladimir Dzhuvinov
-
-
Constructor Summary
Constructors Constructor Description JSONRPC2Parser()Creates a new JSON-RPC 2.0 message parser.JSONRPC2Parser(boolean preserveOrder)Creates a new JSON-RPC 2.0 message parser.JSONRPC2Parser(boolean preserveOrder, boolean ignoreVersion)Creates a new JSON-RPC 2.0 message parser.JSONRPC2Parser(boolean preserveOrder, boolean ignoreVersion, boolean parseNonStdAttributes)Creates a new JSON-RPC 2.0 message parser.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanignoresVersion()Returnstrueif the"jsonrpc":"2.0"version attribute in parsed JSON-RPC 2.0 messages is ignored, elsefalse.voidignoreVersion(boolean ignore)Specifies whether to ignore the"jsonrpc":"2.0"version attribute during parsing of JSON-RPC 2.0 messages.JSONRPC2MessageparseJSONRPC2Message(String jsonString)Provides common parsing of JSON-RPC 2.0 requests, notifications and responses.JSONRPC2NotificationparseJSONRPC2Notification(String jsonString)Parses a JSON-RPC 2.0 notification string.JSONRPC2RequestparseJSONRPC2Request(String jsonString)Parses a JSON-RPC 2.0 request string.JSONRPC2ResponseparseJSONRPC2Response(String jsonString)Parses a JSON-RPC 2.0 response string.voidparseNonStdAttributes(boolean enable)Specifies whether to parse non-standard attributes found in JSON-RPC 2.0 messages.booleanparsesNonStdAttributes()Returnstrueif non-standard attributes in JSON-RPC 2.0 messages are parsed.voidpreserveOrder(boolean preserveOrder)Controls the preservation of JSON object member order in parsed JSON-RPC 2.0 messages.booleanpreservesOrder()Returnstrueif the order of JSON object members in parsed JSON-RPC 2.0 messages is preserved, elsefalse.
-
-
-
Constructor Detail
-
JSONRPC2Parser
public JSONRPC2Parser()
Creates a new JSON-RPC 2.0 message parser.The member order of parsed JSON objects in parameters and results will not be preserved; strict checking of the 2.0 JSON-RPC version attribute will be enforced; non-standard message attributes will be ignored. Check the other constructors if you want to specify different behaviour.
-
JSONRPC2Parser
public JSONRPC2Parser(boolean preserveOrder)
Creates a new JSON-RPC 2.0 message parser.Strict checking of the 2.0 JSON-RPC version attribute will be enforced; non-standard message attributes will be ignored. Check the other constructors if you want to specify different behaviour.
- Parameters:
preserveOrder- Iftruethe member order of JSON objects in parameters and results will be preserved.
-
JSONRPC2Parser
public JSONRPC2Parser(boolean preserveOrder, boolean ignoreVersion)Creates a new JSON-RPC 2.0 message parser.Non-standard message attributes will be ignored. Check the other constructors if you want to specify different behaviour.
- Parameters:
preserveOrder- Iftruethe member order of JSON objects in parameters and results will be preserved.ignoreVersion- Iftruethe"jsonrpc":"2.0"version attribute in the JSON-RPC 2.0 message will not be checked.
-
JSONRPC2Parser
public JSONRPC2Parser(boolean preserveOrder, boolean ignoreVersion, boolean parseNonStdAttributes)Creates a new JSON-RPC 2.0 message parser.This constructor allows full specification of the available JSON-RPC message parsing properties.
- Parameters:
preserveOrder- Iftruethe member order of JSON objects in parameters and results will be preserved.ignoreVersion- Iftruethe"jsonrpc":"2.0"version attribute in the JSON-RPC 2.0 message will not be checked.parseNonStdAttributes- Iftruenon-standard attributes found in the JSON-RPC 2.0 messages will be parsed too.
-
-
Method Detail
-
parseJSONRPC2Message
public JSONRPC2Message parseJSONRPC2Message(String jsonString) throws JSONRPC2ParseException
Provides common parsing of JSON-RPC 2.0 requests, notifications and responses. Use this method if you don't know which type of JSON-RPC message the input string represents.If a particular message type is expected use the dedicated
parseJSONRPC2Request(java.lang.String),parseJSONRPC2Notification(java.lang.String)andparseJSONRPC2Response(java.lang.String)methods. They are more efficient and would provide you with more detailed parse error reporting.- Parameters:
jsonString- A JSON string representing a JSON-RPC 2.0 request, notification or response, UTF-8 encoded. Must not benull.- Returns:
- An instance of
JSONRPC2Request,JSONRPC2NotificationorJSONRPC2Response. - Throws:
JSONRPC2ParseException- With detailed message if the parsing failed.
-
parseJSONRPC2Request
public JSONRPC2Request parseJSONRPC2Request(String jsonString) throws JSONRPC2ParseException
Parses a JSON-RPC 2.0 request string.- Parameters:
jsonString- The JSON-RPC 2.0 request string, UTF-8 encoded. Must not benull.- Returns:
- The corresponding JSON-RPC 2.0 request object.
- Throws:
JSONRPC2ParseException- With detailed message if parsing failed.
-
parseJSONRPC2Notification
public JSONRPC2Notification parseJSONRPC2Notification(String jsonString) throws JSONRPC2ParseException
Parses a JSON-RPC 2.0 notification string.- Parameters:
jsonString- The JSON-RPC 2.0 notification string, UTF-8 encoded. Must not benull.- Returns:
- The corresponding JSON-RPC 2.0 notification object.
- Throws:
JSONRPC2ParseException- With detailed message if parsing failed.
-
parseJSONRPC2Response
public JSONRPC2Response parseJSONRPC2Response(String jsonString) throws JSONRPC2ParseException
Parses a JSON-RPC 2.0 response string.- Parameters:
jsonString- The JSON-RPC 2.0 response string, UTF-8 encoded. Must not benull.- Returns:
- The corresponding JSON-RPC 2.0 response object.
- Throws:
JSONRPC2ParseException- With detailed message if parsing failed.
-
preserveOrder
public void preserveOrder(boolean preserveOrder)
Controls the preservation of JSON object member order in parsed JSON-RPC 2.0 messages.- Parameters:
preserveOrder-trueto preserve the order of JSON object members, elsefalse.
-
preservesOrder
public boolean preservesOrder()
Returnstrueif the order of JSON object members in parsed JSON-RPC 2.0 messages is preserved, elsefalse.- Returns:
trueif order is preserved, elsefalse.
-
ignoreVersion
public void ignoreVersion(boolean ignore)
Specifies whether to ignore the"jsonrpc":"2.0"version attribute during parsing of JSON-RPC 2.0 messages.You may with to disable strict 2.0 version checking if the parsed JSON-RPC 2.0 messages don't include a version attribute or if you wish to achieve limited compatibility with older JSON-RPC protocol versions.
- Parameters:
ignore-trueto skip checks of the"jsonrpc":"2.0"version attribute in parsed JSON-RPC 2.0 messages, elsefalse.
-
ignoresVersion
public boolean ignoresVersion()
Returnstrueif the"jsonrpc":"2.0"version attribute in parsed JSON-RPC 2.0 messages is ignored, elsefalse.- Returns:
trueif the"jsonrpc":"2.0"version attribute in parsed JSON-RPC 2.0 messages is ignored, elsefalse.
-
parseNonStdAttributes
public void parseNonStdAttributes(boolean enable)
Specifies whether to parse non-standard attributes found in JSON-RPC 2.0 messages.- Parameters:
enable-trueto parse non-standard attributes, elsefalse.
-
parsesNonStdAttributes
public boolean parsesNonStdAttributes()
Returnstrueif non-standard attributes in JSON-RPC 2.0 messages are parsed.- Returns:
trueif non-standard attributes are parsed, elsefalse.
-
-