超级对象 - 元素名称中的空格
Super Object - spaces in element names
我正在使用 Super Object 作为 JSON 解析器。我 运行 在与第三方 API 合作时遇到了问题。元素名称中带有 space 的 API returns JSON。但是,超级对象不适用于 spaces。我观察到将 space 视为结束引号的行为,因此忽略了 space.
之后的任何内容
{ "state abbreviation":"KY", "state":"Kentucky" }
我认为关键是 state
也是另一个元素的名称。当我尝试读取 state abbreviation
时,它 returns 取而代之的是 state
的值。
我怎样才能解决这个问题?
这个 MCVE 表明 SuperObject 在元素名称中使用空格时工作正常,我使用了最新版本的 source code 和 Delphi XE7:
program SO40958627;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SuperObject,
System.SysUtils;
var
obj: ISuperObject;
begin
try
obj := SO('{ "state":"Kentucky", "state abbreviation":"KY" }');
Writeln(obj.AsObject.S['state']);
Writeln(obj.AsObject.S['state abbreviation']);
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
程序输出:
Kentucky
KY
您似乎没有使用最新版本的源代码,或者缺陷位于您程序的其他地方...
我正在使用 Super Object 作为 JSON 解析器。我 运行 在与第三方 API 合作时遇到了问题。元素名称中带有 space 的 API returns JSON。但是,超级对象不适用于 spaces。我观察到将 space 视为结束引号的行为,因此忽略了 space.
之后的任何内容{ "state abbreviation":"KY", "state":"Kentucky" }
我认为关键是 state
也是另一个元素的名称。当我尝试读取 state abbreviation
时,它 returns 取而代之的是 state
的值。
我怎样才能解决这个问题?
这个 MCVE 表明 SuperObject 在元素名称中使用空格时工作正常,我使用了最新版本的 source code 和 Delphi XE7:
program SO40958627;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SuperObject,
System.SysUtils;
var
obj: ISuperObject;
begin
try
obj := SO('{ "state":"Kentucky", "state abbreviation":"KY" }');
Writeln(obj.AsObject.S['state']);
Writeln(obj.AsObject.S['state abbreviation']);
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
程序输出:
Kentucky
KY
您似乎没有使用最新版本的源代码,或者缺陷位于您程序的其他地方...