gpt4 book ai didi

json - 如何使用 SuperObject 序列化包含点(例如 IP 地址)的 JSON key ?

转载 作者:行者123 更新时间:2023-12-03 14:59:20 24 4
gpt4 key购买 nike

我正在尝试保存 JSON,其中 IP 是关键。预期的 JSON 结果是:

{"SnmpManagers":[{"10.112.25.235":162}]}

Delphi SuperObject 代码:

const
IpAddr = '10.112.25.235';
Port = 162;
var
tmp: TSuperObject;
begin
tmp := TSuperObject.Create;
tmp.I[IpAddr] := Port;
Json.A['SnmpManagers'].Add(tmp);
end;

SuperObject 将点解析为 JSON 对象的路径分隔符:

{"SnmpManagers":[{"10":{"112":{"25":{"235":162}}}}]}

如何使用 SuperObject 正确将 IP 保存为 JSON key ?

最佳答案

解决方案是从字符串创建 JSON 对象

Json.A['SnmpManagers'].Add(SO(Format('{"%s":%d}', [IpAddr, Port])));

另一种添加方式(不要与 .O[] 一起使用,因为 AsObject 对于不存在的键给出 nil):

// for a simple key-value object
Json.AsObject.S['1.2.3'] := 'a'; // gives us {{"1.2.3":"a"}}
Json.AsObject.S['4.5'] := 'b'; // gives us {{"1.2.3":"a"}, {"4.5":"b"}}

关于json - 如何使用 SuperObject 序列化包含点(例如 IP 地址)的 JSON key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22652878/

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