在sf.net上,我很艰苦都没有吧bug汇报上去,所以在这里写下,希望哪位能搜索到就看看吧。
其实这个bug很容易发现。下面列出bug的修改结果:
找到 function JSONObject.put(key: string; value: TZAbstractObject): JSONObject;函数改成如下,红色为修改部分。
function JSONObject.put(key: string; value: TZAbstractObject): JSONObject;
var
temp : TObject;
i : integer;
begin
if (key = '') then
begin
raise NullPointerException.create('Null key.');
end ;
if (value <> nil) then
begin
i := self.myHashMap.IndexOf(key);
if ( i >= 0) then
begin
temp := self.myHashMap.Objects [i];
self.myHashMap.Objects[i] := value;
if (temp <> CONST_FALSE)
and (temp <> CONST_TRUE)
and (temp <> CNULL) then
temp.free;
end
else
begin
self.myHashMap.AddObject(key, value);
end;
end
else
begin
temp := remove(key);
if (temp <> nil) then
begin
temp.free;
end;
end;
result := self;
end;
有了json我基本已经不想使用soap了