delphi的json类:SuperObject,以及简单用法jsonHelper

delphi的json类:SuperObject

转对象:

js:=so();
js.I['nID']     :=  nID;        //
        js.S['sKey']    :=  sKey;       //
        js.S['sID']     :=  sID;        //
        js.S['sID3']    :=  sID3;       //
        s:=sFtpPath;                    //路径
        s:='/FTP'+iif(s='','/','')+s;   //从FTP传的都要加这个
        js.S['sPath']   :=  s;          //FTP路径,FTP的都要加头/FTP/
        js.S['sFile']   :=  extractFileName(sFile);   //上传不带路径,路径在sFtpPath里
        js.S['sFileOld']:=  extractFileName(sFileOld);//
        js.S['sImage']  :=  extractFileName(sImage);  //
        js.D['nSize']   :=  nSize;      //
        js.S['sExt']    :=  sExt;       //
        js.S['dDate']   :=  formatDateTime('yyyy-MM-dd hh:mm:ss',dDate);
s:=js.AsString();

 

取返回值:

vJson:=So(lowercase(sResult));
        //检查结果
        ret:=getJsonValue(vJson,'error','');

 

getJsonValue函数:

{*******************************json工具,20180101******************************
处理json的辅助类,zdj、zch,20180101
*******************************************************************************}
unit jsonHelper;

interface
uses
    windows, sysUtils, superobject, variants;

function getJsonValue(json:ISuperObject; AField:string; ADefault:string=''):string;    //获取json字段对应的值

implementation
uses untPub;

{
1.字段不存在时会报错;
2.字段区分大小写,故全部转换为小写
}
function getJsonValue(json: ISuperObject; aField, ADefault: string): string;
var v:variant;
    function wuxiao:boolean;
    begin
        result:=variants.VarIsNull(v) or variants.VarIsType(v, varUnknown);
        if not result then result:=v=ADefault;
    end;
begin
    result:=aDefault;
    try
        if (not assigned(json)) then exit;
        v:=json.S[AField];  //lowercase(AField) dj180521不能转换大小写,因为有FTP密码
        if wuxiao then v:=json.S[AField];
        if wuxiao then v:=json.s[upperCase(AField)];    //oracle出来的全是大写
        if wuxiao then v:=json.s[lowerCase(AField)];                          
        if wuxiao then exit;
        result:=variants.VarToStrDef(v, ADefault);
        if (result='null') then result:=ADefault;       //无效值
    Except
        on e:exception do untPub.writeErrorLogs('getJsonValue获取数据错误,字段-'+aField);
    End;
end;

end.
 

文件下载地址:

https://download.youkuaiyun.com/download/gssystems/15397811

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值