-- 类代码 TCmdReqParam<T> = class private protected public uri: string; param: T; end;
TCmdRequest<T> = class private protected public cmd: string; request: TCmdReqParam<T>; end;
TCmdStringData = class private protected public value: string; class function process(const Text: String): string; overload; static; end;
-- 反序列化为复杂类型
class function TCmdStringData.process(const Text: String): string; var Serializer: TJsonSerializer; u: TCmdRequest<TCmdStringData>; begin Serializer := TJsonSerializer.Create; try u := Serializer.Deserialize<TCmdRequest<TCmdStringData>>(Text); try Result := 'ok'; finally u.Free; end; finally Serializer.Free; end; end;
---- 测试字符串:
{ "cmd": "cmd-test", "request": { "uri": "a=b&b=看恋", "param": { "value": "i am test" }, "keepResponse": false } }