【问题描述】
QJSON在解析空白的JSON数组和对象时,保存没有问题,加载出错,如下面的JSON代码:
[]
或
{}
会提示无效的JSON错误。
问题发生原因是在LoadFromStream函数的实现时,检查了Json源数据流的大小,当小于等于2时,认为是无效的Json数据。
procedure TQJson.LoadFromStream(AStream: TStream; AEncoding: TTextEncoding); var s: QStringW; begin s := LoadTextW(AStream, AEncoding); if Length(s) > 2 then//<--问题出在这儿 Parse(PQCharW(s), Length(s)) else raise Exception.Create(SBadJson); end;
将上面的判断改为>=即可解决本问题。
【严重级别】
中
【更新级别】
建议更新
【特别感谢】
恢弘报告此问题。