프리 페스칼 또는 델파이 애플리케이션에서 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 : {문자열 | 정수}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 : {문자열 | 정수}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 : {문자열 | 정수}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}{ijsonrpcpared}의 객체를 반환합니다.
구문 분석 중에 감지 된 메시지 유형을 보여줍니다. 유형 : jotinvalid, jotrequest, jotnotification, jotsuccess, joterror.
<{jsonrpcobjecttype} 중 하나를 반환합니다.
IJSONRPCMESSAGE에 저장된 반환.
인터페이스 ijsonrpcpared를 실현합니다.
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} - 오류 텍스트