zoukankan      html  css  js  c++  java
  • SuperObject 使用心得

    SuperObject 已经支持Delphi2010, 使用起来觉得很方便,也比较少出现错误,具体的使用方法在万一的博客上已经说的很清楚!

    下面是我遇到问题的产生原因与解决方法

    类型声明:

    type
    
    TNRA=record
    end;
    
    TNRB=record
         A:String;
         B:Integer;
    end;
    
    TNRTest=record
        A:TNRA;
        B:TNRB;
    end;
    

    处理代码:

    var
      Test:TNRTest;
      CTX:TSuperRttiContext;
      Obj:ISuperObject;
      JsonString:String;
    begin
      {对Test进行处理}
      CTX:=TSuperRttiContext.create;
      try
          Obj:=CTX.AsJson<TNRTest>(Test);
          JsonString:=Obj.asJson;
          
          {对JsonString进行处理}
      finally
          CTX.Free;
      end;
    
    
    

    反处理代码:

    var
      Test:TNRTest;
      CTX:TSuperRttiContext;
      JsonString:String;
    begin
      {获取JsonString}
      CTX:=TSuperRttiContext.create;
      try
          Test:=CTX.AsType<TNRTest>(SO(JsonString));   //这里出现错误!   
          {对Test进行处理}
      finally
          CTX.Free;
      end;
    end;
    

    在对上面的代码进行反处理的时候,就会发生错误!类型不兼容错误!

    错误的原因是TNRA是空的,在TNRA里加几个Field后,程序运行正常!

    总结:SuperObject在对上面这种况没有进行处理,就要求我们尽力避免上述情况!

  • 相关阅读:
    经典脚本集合
    Crystal Report 注册号
    Linux top命令简介
    sysctl.conf优化方案(完整)
    vi入门学习(转载)
    linux 如何查看目录的剩余空间大小?
    python3安装pip3
    jsonCpp的readme文档
    第15天android:使用sqlite
    《mysql必知必会》笔记
  • 原文地址:https://www.cnblogs.com/neugls/p/1962289.html
Copyright © 2011-2022 走看看