在免费的Pascal或Delphi应用程序中解析并序列化JSON-RPC2消息。 git存储库:https://github.com/r3code/pascal-jsonrpc-lite
受https://github.com/teambition/jsonrpc-lite的启发。
JSON-RPC 2.0规格的实现
uses ujsonrpc;返回对象作为isuperObject克隆的形式内部json-object。
返回JSON字符串对象表示。
参数:
indent :{boolean}缩进的jsonescape :{布尔}逃脱特殊炭创建一个JSON-RPC 2.0请求对象,返回IJSONRPCMESSAGE对象。实现IJSONRPCMESSAGE。
参数:
id :{string | integer}method :{string}params :{ijsonrpcMessage}例子:
var requestObj: TJsonRpcMessage;
requestObj := TJsonRpcMessage.Request( ' 123 ' , ' update ' , SO( ' {list: [1, 2, 3]} ' ));
writeln(requestObj.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// method: 'update',
// params: {list: [1, 2, 3]}
// } 创建一个JSON-RPC 2.0通知对象,返回IJSONRPCMESSAGE对象。
参数:
method :{string}params :{ijsonrpcMessage}例子:
var notificationObj: TJsonRpcMessage;
notificationObj := TJsonRpcMessage.notification( ' update ' , SO( ' {list: [1, 2, 3]} ' ));
writeln(notificationObj.asString);
// {
// jsonrpc: '2.0',
// method: 'update',
// params: {list: [1, 2, 3]}
// } 创建一个JSON-RPC 2.0成功响应对象,返回IJSONRPCMESSAGE对象。
参数:
id :{string | integer}result :{ijsonrpcMessage}例子:
var msg: TJsonRpcMessage;
msg := TJsonRpcMessage.success( ' 123 ' , ' OK ' );
writeln(msg.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// result: 'OK',
// } 创建一个JSON-RPC 2.0错误响应对象,返回IJSONRPCMESSAGE对象。
参数:
id :{string | integer}error :{ijsonrpcmessage}使用tjsonrpcerror或它的兄弟姐妹例子:
var msg: TJsonRpcMessage;
msg := TJsonRpcMessage.Error( ' 123 ' , TJsonRpcError.Create(- 32000 , ' some error ' , ' blabla ' ));
writeln(msg.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// error: {code: -32000, 'message': 'some error', data: 'blabla'},
// } 服用JSON-RPC 2.0有效载荷(字符串),并尝试将其解析为JSON。如果成功,请确定它是什么对象(响应,通知,成功,错误或无效),然后返回其类型并正确格式的对象。
参数:
s :{string}返回{ijsonrpcparsed}的对象。
显示解析过程中检测到的消息类型。类型:Jotinvalid,Jotrequest,Jotnotification,Jotsuccess,Joterror。
返回<{jsonrpcobjectType}之一。
返回存储的裁判访问ijsonrpcmessage。
实现接口ijsonrpcparsed。
创建一个tjsonrpcparsed实例。
参数:
objType :{tjsonrpcobjectType}消息格式类型payload :{ijsonrpcmessage}消息正文描述JSON-RPC 2.0错误对象。实现接口IJSONRPCMESSAGE。
创建一个TJSONRPCERROR实例。
参数:
code :{Integer}message :{string}data :{字符串| isuperObject | nil}可选示例:
var error: TJsonRpcError;
error = TJsonRpcError.Create(- 32651 , ' some error ' , ' some data ' );或者
var error: TJsonRpcError;
error = TJsonRpcError.Create(- 32651 , ' some error ' , SO( ' { a: 1, extra: "some data"} ' ));使用错误代码-32600创建{tjsonrpcerror}对象。
参数:
data :{字符串| isuperObject | nil} - 额外数据使用错误代码-32601创建{tjsonrpcerror}对象。
参数:
data :{字符串| isuperObject | nil} - 额外数据使用错误代码-32602创建{tjsonrpcerror}对象。
参数:
data :{字符串| isuperObject | nil} - 额外数据使用错误代码-32603创建{tjsonrpcerror}对象。
参数:
data :{字符串| isuperObject | nil} - 额外数据使用错误代码-32700创建{tjsonrpcerror}对象。
参数:
data :{string} - 错误文本