欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Delphi7怎樣用superobject解析Json數(shù)據(jù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Delphi7怎樣用superobject解析Json數(shù)據(jù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司是專業(yè)的達(dá)日網(wǎng)站建設(shè)公司,達(dá)日接單;提供做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行達(dá)日網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

前言

現(xiàn)在不管Webapi還是一般的數(shù)據(jù)通訊,用的基本都是Json,以前很多的應(yīng)用程序都是用delphi7開(kāi)發(fā)的,為了維護(hù)舊的程序以及與新的接口進(jìn)行對(duì)接(如微信支付寶支付等),我們就用到了superobject來(lái)操作Json數(shù)據(jù)。

由于我們用的是D7,里面沒(méi)有泛型等這些用法,所以也不存在什么類的序列化與反序列化直接生成Json。操作起來(lái)可能比較C#,Android等要麻煩點(diǎn)。

superobject單元

這個(gè)可以在網(wǎng)上下載,后面我們會(huì)這個(gè)unit放到我的網(wǎng)盤(pán)上,這里我們用到的是

Delphi7怎樣用superobject解析Json數(shù)據(jù)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

就是上面這個(gè)superobject.pas,我的版本是1.25的,原來(lái)用了個(gè)1.24的里面有幾個(gè)小BUG(如Currency類型的輸入0解析不了),在1.25里面解決了。

基本用法

var
    j, a: ISuperObject;

//不能是TSuperObject,盡管有TSuperObject這個(gè)類。
begin
    j:=TSuperObject.Create(stObject);

//創(chuàng)建一個(gè)json對(duì)象,如果參數(shù)是stArray,j就是一個(gè)json數(shù)組,參數(shù)還可以是其它的變量類型,比如字符串,數(shù)值之類的,看起來(lái)很強(qiáng)大,但是如果參數(shù)是一個(gè)描述了json的字符串的話,你會(huì)得到一個(gè)錯(cuò)誤。如果想從文本加載,用j:=SO(json文本);

    j.I['數(shù)字']:=123; 

//就等于 {"數(shù)字": 123} ,類似的,I還可以變成S,B,C之類的,以表示字符串,布爾型,貨幣型。
    j.S['字符串']:="值";

//就等于 {"字符串": “值”} ,類似的,I還可以變成S,B,C之類的,以表示字符串,布爾型,貨幣型。

    a:=TSuperObject.Create(stArray);

//創(chuàng)建一個(gè)json數(shù)組a
    a.I['']:=111; 

//表示給a數(shù)組添加一個(gè)111元素。注意[]中的值為'',在數(shù)組中其[]的語(yǔ)義進(jìn)行了顛覆性的改變。
    a.I[2]:="s";

//第3個(gè)元素值為"s",嗯,[]在superobject的用法還真多
    j['arr']:=a;

//把數(shù)組a添加進(jìn)j,其key名為arr

    showmessage( j.toJson() ); 

//查看j的json文本


    j:=nil; 

//不能寫(xiě)j.Free

end;


代碼演示

因?yàn)檫@是在項(xiàng)目的邊做邊寫(xiě)的,所以我們還是用上一章的《Delphi調(diào)用動(dòng)態(tài)鏈接庫(kù)》PosPayIntf動(dòng)態(tài)庫(kù)項(xiàng)目,先看一下我們的目錄結(jié)構(gòu)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

我們把Json這塊的處理都放在了BaseClass下的Json文件夾下

Delphi7怎樣用superobject解析Json數(shù)據(jù)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

其中superobject就是我們引用的Json解析單元,DoJson是我自己封裝的幾個(gè)處理返回的方法。

Delphi7怎樣用superobject解析Json數(shù)據(jù)

在動(dòng)態(tài)庫(kù)的項(xiàng)目里面我們可以看到已經(jīng)把這兩個(gè)單元文件引用進(jìn)來(lái)了。

DoJson單元

在這個(gè)單元里面我寫(xiě)了三個(gè)函數(shù)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

  • GetJsonStr;獲取Json對(duì)應(yīng)的項(xiàng)目下的字符串

  • CreateOutMsgJsonStr;生成輸出的OutMsg的Json字符串

  • CreateOutParaJsonStr;生成輸出OutParaJsonStr的字符串


GetJsonStr

Delphi7怎樣用superobject解析Json數(shù)據(jù)

根據(jù)輸入的Json字符串,我們找到指定的屬性來(lái)獲取對(duì)應(yīng)的字符串

如下

Delphi7怎樣用superobject解析Json數(shù)據(jù)

上面?zhèn)魅氲倪@個(gè)Json的字符串

我們通過(guò)下面方法獲取對(duì)應(yīng)的值

Delphi7怎樣用superobject解析Json數(shù)據(jù)

第一個(gè)GetJsonStr(Inparastr,'payinfo'),調(diào)用這個(gè)后我們的tmpParaStr得到的字符串就變成{"oldsaleno":"","payamt":387.6,"oldposno":"","oldpayno":"","salen
o":"201708181158150001","oldsaledate":"","oldrefinfo":""}

第二個(gè)GetJsonStr(tmppParaStr,'Payamt'),調(diào)用這個(gè)后我們的PayTotal值就獲取到了387.6,然后我們?cè)侔炎址D(zhuǎn)換為Currency類型即可。


OutParaJsonStr

接口文檔

Delphi7怎樣用superobject解析Json數(shù)據(jù)

生成函數(shù)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

上在就是一個(gè)生成Json字符串的函數(shù)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

這個(gè)參數(shù)后面幾個(gè)我都有加上默認(rèn)值,所以在調(diào)用的時(shí)候如果不用輸這些參數(shù)就直接給的默認(rèn)值

調(diào)用方法

Delphi7怎樣用superobject解析Json數(shù)據(jù)

返回的Json

Delphi7怎樣用superobject解析Json數(shù)據(jù)


CreateOutMsgJsonStr

這個(gè)方法和上面這個(gè)基本一樣,只不通參數(shù)不同

接口文檔

Delphi7怎樣用superobject解析Json數(shù)據(jù)

接口函數(shù)

Delphi7怎樣用superobject解析Json數(shù)據(jù)

調(diào)用方法

Delphi7怎樣用superobject解析Json數(shù)據(jù)

返回的Json

Delphi7怎樣用superobject解析Json數(shù)據(jù)


程序調(diào)用后的顯示效果

Delphi7怎樣用superobject解析Json數(shù)據(jù)

上述就是小編為大家分享的Delphi7怎樣用superobject解析Json數(shù)據(jù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站標(biāo)題:Delphi7怎樣用superobject解析Json數(shù)據(jù)
鏈接地址:http://chinadenli.net/article24/ipcoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版小程序開(kāi)發(fā)網(wǎng)站排名移動(dòng)網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作