gpt4 book ai didi

json - 如何正确地将非字符串值添加到 TJSONObject?

转载 作者:行者123 更新时间:2023-12-03 15:24:50 25 4
gpt4 key购买 nike

使用 TJSONObject,我注意到它的 AddPair 函数具有以下重载:

function AddPair(const Pair: TJSONPair): TJSONObject; overload;
function AddPair(const Str: TJSONString; const Val: TJSONValue): TJSONObject; overload;
function AddPair(const Str: string; const Val: TJSONValue): TJSONObject; overload;
function AddPair(const Str: string; const Val: string): TJSONObject; overload;

特别是,我注意到添加非字符串值(例如整数、日期时间...)不会出现重载。由于这个原因,调用ToString函数,每个值都显示为双引号:

{"MyIntegerValue":"100"}

根据我在 this 中读到的内容答案是,它违反了非字符串值的 JSON 标准。应该如何将非字符串值添加到 TJSONObject 中?

最佳答案

您可以使用 TJSONNumber 和使用 TJSONValueAddPair 重载来创建数字 JSON 值,如下所示:

program Project1;

{$APPTYPE CONSOLE}

uses
System.SysUtils, System.JSON;

var
JSON: TJSONObject;
begin
JSON := TJSONObject.Create;
try
JSON.AddPair('MyIntegerValue', TJSONNumber.Create(100));
writeln(JSON.ToString);
readln;
finally
JSON.Free;
end;
end.

输出{"MyIntegerValue":100}

这也是 help 的代码示例中的完成方式.

关于json - 如何正确地将非字符串值添加到 TJSONObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162284/

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