这是有效的json
:
[{"id":1, "name":"foo"}, {"id":2, "name":"bar"}]
如何从此TSuperObject
创建string
?
答案 0 :(得分:2)
如果您在浏览器中打开readme.html
,您会在该文档的第一个开头看到:
var
obj: ISuperObject;
begin
obj := SO('{"foo": true}');
obj := TSuperObject.ParseString('{"foo": true}');
obj := TSuperObject.ParseStream(stream);
obj := TSuperObject.ParseFile(FileName);
end;
答案 1 :(得分:2)
Delphi 6有一个错误。
当SO()
函数尝试转换字符串的值时,它会引发EIntOverflow
。
该错误是由于这个功能:
class function TSuperAvlEntry.Hash(const k: SOString): Cardinal;
This is the bug in the google's issue tracker
bug的记者提出的解决方法是将功能改为:
class function TSuperAvlEntry.Hash(const k: SOString): Cardinal;
var
h: cardinal;
i: Integer;
begin
h := 0;
{$Q-}
for i := 1 to Length(k) do
h := Cardinal( h*129 + ord(k[i]) + $9e370001);
Result := h;
end;
{$Q+}