แยกวิเคราะห์และทำให้เป็นอนุกรมข้อความ JSON-RPC2 ในแอปพลิเคชันฟรี-ปาสกาลหรือ Delphi Git Repository: https://github.com/r3code/pascal-jsonrpc-lite
แรงบันดาลใจจาก https://github.com/teambition/jsonrpc-lite
การดำเนินการตามข้อกำหนดของ JSON-RPC 2.0
uses ujsonrpc;ส่งคืนวัตถุเป็นรูปแบบ isuperObject clonned ภายใน json-object
ส่งคืนการแสดงวัตถุสตริง JSON
params:
indent : {boolean} intent ผลลัพธ์ jsonescape : {Boolean} Escape Special Charsสร้างวัตถุคำขอ JSON-RPC 2.0 ส่งคืนวัตถุ ijsonrpcmessage ตระหนักถึง ijsonrpcmessage
params:
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
params:
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
params:
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
params:
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'},
// } ใช้ Payload JSON-RPC 2.0 (สตริง) และพยายามแยกวิเคราะห์เป็น JSON หากประสบความสำเร็จให้พิจารณาว่ามันคือวัตถุอะไร (การตอบสนองการแจ้งเตือนความสำเร็จข้อผิดพลาดหรือไม่ถูกต้อง) และส่งคืนประเภทของมันและการจัดรูปแบบวัตถุที่เหมาะสม
params:
s : {String}ส่งคืนวัตถุของ {ijsonrpcparsed}
แสดงประเภทของข้อความที่ตรวจพบระหว่างการแยกวิเคราะห์ ประเภท: jotinvalid, jotrequest, jotnotification, jotsuccess, joterror
ส่งคืนหนึ่งใน <{jsonrpcobjectType}
ส่งคืน REF ที่เก็บไว้เป็น ijsonrpcmessage
ตระหนักถึงอินเตอร์เฟส ijsonrpcparsed
สร้างอินสแตนซ์ tjsonrpcparsed
params:
objType : {tjsonrpcobjectType} ประเภทข้อความประเภทข้อความpayload : {ijsonrpcmessage} ข้อความข้อความอธิบายวัตถุข้อผิดพลาด JSON-RPC 2.0 ตระหนักถึงอินเตอร์เฟส ijsonrpcmessage
สร้างอินสแตนซ์ tjsonrpcerror
params:
code : {จำนวนเต็ม}message : {สตริง}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"} ' ));สร้างวัตถุ {TJSONRPCERROR} ด้วยรหัสข้อผิดพลาด -32600
params:
data : {String | isuperObject | nil} - ข้อมูลพิเศษ สร้างวัตถุ {tjsonRpCerror} ด้วยรหัสข้อผิดพลาด -32601
params:
data : {String | isuperObject | nil} - ข้อมูลพิเศษ สร้างวัตถุ {TJSONRPCERROR} ด้วยรหัสข้อผิดพลาด -32602
params:
data : {String | isuperObject | nil} - ข้อมูลพิเศษ สร้างวัตถุ {tjsonRpCerror} ด้วยรหัสข้อผิดพลาด -32603
params:
data : {String | isuperObject | nil} - ข้อมูลพิเศษ สร้างวัตถุ {tjsonRpCerror} ด้วยรหัสข้อผิดพลาด -32700
params:
data : {string} - ข้อความข้อผิดพลาด