gpt4 book ai didi

json - Delphi对象转json字符串如何忽略空字段和null字段

转载 作者:行者123 更新时间:2023-12-02 06:10:22 26 4
gpt4 key购买 nike

我有一堂休息请求课,如下

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 字符串应该是以下之一(根据从客户 Assets key 兑换码收到的信息)

{"RedeemItems":[{"AssetKey":"xxxxx"}]}

{"RedeemItems":[{"RedeemCode":"xxxxx"}]}

因此,从短期来看,我想忽略所有为空或 nil 的字段(包括数组)。

我正在使用 Delphi 10 西雅图。

最佳答案

您可以使用以下方法:

function TRedeemItemsClass.ToJsonString: string;
begin
result := TJson.ObjectToJsonString(self, [TJsonOption.joIgnoreEmptyStrings]);
end;

function TRedeemItemsClass.ToJsonObject: TJSONObject;
begin
result := TJson.ObjectToJsonObject(self, [TJsonOption.joIgnoreEmptyStrings]);
end;

关于json - Delphi对象转json字符串如何忽略空字段和null字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com