QJSON专题-Delphi/C++ Builder的快速JSON解析单元

QJSON – Delphi下快速的JSON解决方案

【转】封三郎-Delphi用QJSON解析JSON格式的数据

QJSON中编码函数Encode的特别说明

QJson/QMsgPack RTTI 注意事项

示例-向QJson实例中添加子结点的方法小结

示例-QJson中结点的查找与遍历方法小结

QJSON vs lkJson vs SuperObject 速度大PK

JSON内容查看器,基于QJson设计

YxdJson高性能JSON处理库简介

QJson与QMsgPack中的RTTI调用演示

[转]封三郎-利用QJSON将FDQuery转成JSON串

示例-利用QJson转换FireDAC数据JSON格式

[QJSON] 常见问题及解答

 

分享到:
  1. function TQJson.Add(AName, AValue: QStringW; ADataType: TQJsonDataType) : Integer;
    11月19号修改好像还有问题
    ANode := CreateJson;
    ANode.FName := AName;
    DoJsonNameChanged(ANode); //这样的话里面会判断是否存在父类,如果没有就不会生成哈希了。
    Result := Add(ANode);
    所以要修改成:
    ANode := CreateJson;
    ANode.FName := AName;
    Result := Add(ANode);
    DoJsonNameChanged(ANode);

  2. function TQJson.Add(AName, AValue: QStringW; ADataType: TQJsonDataType) : Integer;
    这个函数有问题,如果是直接生成的节点,如果用的是TQHashedJson类型,会造成这个新建的节点不能够计算哈希值,用ItemByPath的时候会出错,
    //—————————–
    //原来的代码是以下两行
    //ANode := CreateJson;
    //ANode.FName := AName;
    //如果这样的话,新建的节点不会计算哈希值,这样用ItemByPath的话会出错 by jason 2015-11-18
    //将代码修改如下:经过测试,这样修改后用ItemByPath就不出错了,不知这样修改对不对,请各位大神指教。
    ANode := Add(AName);

  3. 发现一个问题,我的数据中有些字符串,比如类似12-11这种的,会被识别为日期,不知道这个是bug还是什么

  4. ////////////////////////////////////////////////////////我用下面的方法只能输出一行:AJson := TQJson.Create;ajson.add(‘total’,28);try with AJson.Add(‘rows’) do begin Add(‘productid’).AsString := ‘FI-SW-01’; Add(‘productname’).asstring:=’Dalmation’; Add(‘productname’).AsFloat:=10.00; Add(‘status’).asstring:=’p’; Add(‘listprice’).AsFloat:=36.50; Add(‘attr1′).asstring:=’Large’; Add(‘itemid’).asstring:='”EST-1′; end;memo1.lines.text:=ajson.AsJson;finally AJson.Free;end;////////////////////////////////////////////////////////这样输出的结果又不是预期的:AJson := TQJson.Create;ajson.add(‘total’,28);try with AJson.Add(‘rows’) do begin Add(‘productid’).AsString := ‘FI-SW-01’; Add(‘productname’).asstring:=’Dalmation’; Add(‘productname’).AsFloat:=10.00; Add(‘status’).asstring:=’p’; Add(‘listprice’).AsFloat:=36.50; Add(‘attr1′).asstring:=’Large’; Add(‘itemid’).asstring:='”EST-1′; end; with AJson.Add(‘abc’) do begin Add(‘productid’).AsString := ‘FI-SW-01’; Add(‘productname’).asstring:=’Dalmation’; Add(‘productname’).AsFloat:=10.00; Add(‘status’).asstring:=’p’; Add(‘listprice’).AsFloat:=36.50; Add(‘attr1′).asstring:=’Large’; Add(‘itemid’).asstring:='”EST-1′; end;memo1.lines.text:=ajson.AsJson;finally AJson.Free;end;////////////////////////////////////////////////////////求助。