【发布时间】:2016-02-15 13:33:23
【问题描述】:
我有一个休息请求类如下
TRedeemItemsClass = class
private
[JSONName('RedeemCode')]
FRedeemCode: String;
[JSONName('AssetKey')]
FAssetKey:String;
public
property RedeemCode: String read FRedeemCode write FRedeemCode;
property AssetKey:String read FAssetKey write FAssetKey;
function ToJsonString: string;
class function FromJsonString(AJsonString: string): TRedeemItemsClass;
end;
implementation
function TRedeemItemsClass.ToJsonString: string;
begin
result := TJson.ObjectToJsonString(self);
end;
class function TRedeemItemsClass.FromJsonString(AJsonString: string): TRedeemItemsClass;
begin
result := TJson.JsonToObject<TRedeemItemsClass>(AJsonString)
end;
jObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(reqRedeem.ToJsonString), 0) as TJSONObject;
使用这行代码,我得到了我的 json 请求字符串,例如
{"RedeemCode":"","AssetKey":"xxxxx"}
正如预期的那样。
兑换请求正文 json 字符串应该是其中之一( 根据从客户收到的信息assetkey或redeemcode)
{"RedeemItems":[{"AssetKey":"xxxxx"}]}
或
{"RedeemItems":[{"RedeemCode":"xxxxx"}]}
所以在短期内,我想忽略所有为空或 nil 的字段(包括数组)。
我正在使用 Delphi 10 Seattle。
【问题讨论】:
-
您必须“手动”构建 JSON 或为此编写拦截器
标签: json rest delphi delphi-10-seattle