Parse и сериализуйте сообщения JSON-RPC2 в приложении Free-Pascal или Delphi. Repository GIT: https://github.com/r3code/pascal-jsonrpc-lite
Вдохновленный https://github.com/teambition/jsonrpc-lite.
Реализация спецификаций JSON-RPC 2.0
uses ujsonrpc;Возвращает объект как IsuperObject Clonned Form Form Internal JSON-OBJECT.
Возвращает представление объекта строки JSON.
Параметры:
indent : {boolean} отступить в результате JSONescape : {Boolean} Escape Special CharsСоздает объект запроса 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}.
Показывает тип сообщения, обнаруженного во время Parse. Типы: jotinvalid, Jotrequest, Jotnotification, Jotsuccess, Joterror.
Возвращает один из <{jsonrpcobjecttype}.
Возвращает сохраненный реф в ijsonrpcmessage.
Осознает интерфейс ijsonrpcparsed.
Создайте экземпляр TJSonRpCparsed.
Параметры:
objType : {tjsonrpcobjecttype} Тип формата сообщенияpayload : {ijsonrpcmessage} тело сообщенияОписывает объект ошибки JSON-RPC 2.0. Осознает интерфейс ijsonrpcmessage.
Создайте экземпляр TJSonRPCerror.
Параметры:
code : {integer}message : {String}data : {String | 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"} ' ));Create {tjsonrpcerror} объект с кодом ошибки -32600.
Параметры:
data : {String | isuperObject | nil} - дополнительные данные Create {tjsonrpcerror} объект с кодом ошибки -32601.
Параметры:
data : {String | isuperObject | nil} - дополнительные данные Create {tjsonrpcerror} объект с кодом ошибки -32602.
Параметры:
data : {String | isuperObject | nil} - дополнительные данные Create {tjsonrpcerror} объект с кодом ошибки -32603.
Параметры:
data : {String | isuperObject | nil} - дополнительные данные Create {tjsonrpcerror} объект с кодом ошибки -32700.
Параметры:
data : {String} - текст ошибки