Class JSONRPC2Message
- java.lang.Object
- 
- com.thetransactioncompany.jsonrpc2.JSONRPC2Message
 
- 
- Direct Known Subclasses:
- JSONRPC2Notification,- JSONRPC2Request,- JSONRPC2Response
 
 public abstract class JSONRPC2Message extends Object The base abstract class for JSON-RPC 2.0 requests, notifications and responses. Provides common methods for parsing (from JSON string) and serialisation (to JSON string) of these three message types.Example parsing and serialisation back to JSON: String jsonString = "{\"method\":\"progressNotify\",\"params\":[\"75%\"],\"jsonrpc\":\"2.0\"}"; JSONRPC2Message message = null; // parse try { message = JSONRPC2Message.parse(jsonString); } catch (JSONRPC2ParseException e) { // handle parse exception } if (message instanceof JSONRPC2Request) System.out.println("The message is a request"); else if (message instanceof JSONRPC2Notification) System.out.println("The message is a notification"); else if (message instanceof JSONRPC2Response) System.out.println("The message is a response"); // serialise back to JSON string System.out.println(message);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 SummaryConstructors Constructor Description JSONRPC2Message()
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidappendNonStdAttribute(String name, Object value)Appends a non-standard attribute to this JSON-RPC 2.0 message.ObjectgetNonStdAttribute(String name)Retrieves a non-standard JSON-RPC 2.0 message attribute.Map<String,Object>getNonStdAttributes()Retrieves the non-standard JSON-RPC 2.0 message attributes.static JSONRPC2Messageparse(String jsonString)Provides common parsing of JSON-RPC 2.0 requests, notifications and responses.static JSONRPC2Messageparse(String jsonString, boolean preserveOrder, boolean ignoreVersion)Provides common parsing of JSON-RPC 2.0 requests, notifications and responses.abstract JsonObjecttoJSONObject()Returns a JSON object representing this JSON-RPC 2.0 message.StringtoJSONString()Returns a JSON string representation of this JSON-RPC 2.0 message.StringtoString()Serialises this JSON-RPC 2.0 message to a JSON object string.
 
- 
- 
- 
Method Detail- 
parsepublic static JSONRPC2Message parse(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 JSON string represents.Batched requests / notifications are not supported. This method is thread-safe. If you are certain about the message type use the dedicated JSONRPC2Request.parse(java.lang.String),JSONRPC2Notification.parse(java.lang.String)orJSONRPC2Response.parse(java.lang.String)methods. They are more efficient and provide a more detailed parse error reporting.The member order of parsed JSON objects will not be preserved (for efficiency reasons) and the JSON-RPC 2.0 version field must be set to "2.0". To change this behaviour check the optional parse(String,boolean,boolean)method.- Parameters:
- jsonString- A JSON string representing a JSON-RPC 2.0 request, notification or response, UTF-8 encoded. Must not be- null.
- Returns:
- An instance of JSONRPC2Request,JSONRPC2NotificationorJSONRPC2Response.
- Throws:
- JSONRPC2ParseException- With detailed message if parsing failed.
 
 - 
parsepublic static JSONRPC2Message parse(String jsonString, boolean preserveOrder, boolean ignoreVersion) 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.Batched requests / notifications are not supported. This method is thread-safe. If you are certain about the message type use the dedicated JSONRPC2Request.parse(java.lang.String),JSONRPC2Notification.parse(java.lang.String)orJSONRPC2Response.parse(java.lang.String)methods. They are more efficient and provide a 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 be- null.
- preserveOrder- If- truethe member order of JSON objects in parameters and results must be preserved.
- ignoreVersion- If- truethe- "jsonrpc":"2.0"version field in the JSON-RPC 2.0 message will not be checked.
- Returns:
- An instance of JSONRPC2Request,JSONRPC2NotificationorJSONRPC2Response.
- Throws:
- JSONRPC2ParseException- With detailed message if parsing failed.
 
 - 
appendNonStdAttributepublic void appendNonStdAttribute(String name, Object value) Appends a non-standard attribute to this JSON-RPC 2.0 message. This is done by adding a new member (key / value pair) to the top level JSON object representing the message.You may use this method to add meta and debugging attributes, such as the request processing time, to a JSON-RPC 2.0 message. - Parameters:
- name- The attribute name. Must not conflict with the existing "method", "id", "params", "result", "error" and "jsonrpc" attributes reserved by the JSON-RPC 2.0 protocol, else an- IllegalArgumentExceptionwill be thrown. Must not be- nulleither.
- value- The attribute value. Must be of type String, boolean, number, List, Map or null, else an- IllegalArgumentExceptionwill be thrown.
 
 - 
getNonStdAttributepublic Object getNonStdAttribute(String name) Retrieves a non-standard JSON-RPC 2.0 message attribute.- Parameters:
- name- The name of the non-standard attribute to retrieve. Must not be- null.
- Returns:
- The value of the non-standard attribute (may also be 
         null,nullif not found.
 
 - 
getNonStdAttributespublic Map<String,Object> getNonStdAttributes() Retrieves the non-standard JSON-RPC 2.0 message attributes.- Returns:
- The non-standard attributes as a map, nullif none.
 
 - 
toJSONObjectpublic abstract JsonObject toJSONObject() Returns a JSON object representing this JSON-RPC 2.0 message.- Returns:
- The JSON object.
 
 - 
toJSONStringpublic String toJSONString() Returns a JSON string representation of this JSON-RPC 2.0 message.- Returns:
- The JSON object string representing this JSON-RPC 2.0 message.
- See Also:
- toString()
 
 
- 
 
-