我正在尝试保存 JSON,其中 IP 是关键。预期的 JSON 结果是:
{"SnmpManagers":[{"10.112.25.235":162}]}
Delphi超级对象代码:
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 密钥?
解决方案是从字符串创建 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"}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)