轉換json VFP輕鬆把JSON轉換為緩衝表

2021-10-14 17:35:45 字數 2797 閱讀 6872

開發環境:vfp sp2 7423

祺佑三層開發框架

框架中有個qiyujsonready的類,利用它可以輕鬆把json轉換為表。使用非常簡單。

*-- 將json串轉換為臨時表的json類

*-- 支援json物件,json陣列轉換

*-- 支援多層路徑  比如:物件\物件\陣列

*-- 緩衝表模式(0 自動  1 新增  2 編輯 3 刪除)

*-- 可與dal_ca類完美配合

*-- 返回值:-1 出錯,>=0 轉化的記錄數

1 json物件

text to cresult noshow

endtext

oreader=newobject("qiyujsonreader","qiyujsonreader.prg")

text to oreader.cursorstruct noshow textmerge

id i,name c(50),age numeric(4)

endtext

oreader.alias="test"  &&生成的臨時表名

oreader.keylist="id" &&主鍵

*--第三個引數:如果鍵值是陣列是否轉換成json字串

*--返回值:轉換的記錄行數|-1(出錯)

if oreader.parsecursor(cresult,0,.f.) <0

?oreader.msg

else

browse

endif

2 json陣列

text to cresult noshow

[,]endtext

oreader=newobject("qiyujsonreader","qiyujsonreader.prg")

text to oreader.cursorstruct noshow textmerge

id i,name c(50),age numeric(4)

endtext

oreader.alias="test" 

oreader.keylist="id"

if oreader.parsecursor(cresult,0,.f.) <0

?oreader.msg

else

browse

endif

3 對像\陣列 一層的結構

text to cresult noshow

]}endtext

oreader=newobject("qiyujsonreader","qiyujsonreader.prg")

text to oreader.cursorstruct noshow textmerge

id i,name c(50),age numeric(4)

endtext

oreader.alias="test" 

oreader.keylist="id" 

oreader.root="rows"  &&需要轉換表的鍵的位置

if oreader.parsecursor(cresult,0,.f.) <0

?oreader.msg

else

browse

endif

4 對像\物件\陣列 多層的結構

text to cresult noshow

]}}endtext

oreader=newobject("qiyujsonreader","qiyujsonreader.prg") &&jsonðòáðàà

text to oreader.cursorstruct noshow textmerge

id i,name c(50),age numeric(4)

endtext

oreader.alias="test" 

oreader.keylist="id" 

oreader.root="mydata\rows"  &&層級用\來表示

if oreader.parsecursor(cresult,0,.f.) <0

?oreader.msg

else

browse

endif

5 值為資料或物件的結構

text to cresult noshow

,"rows":},}

endtext

oreader=newobject("qiyujsonreader","qiyujsonreader.prg") text to oreader.cursorstruct noshow textmerge

mydata c(20),rows c(240)

endtext

oreader.alias="test" 

*--第三個引數表單轉換json物件或陣列為json字串

if oreader.parsecursor(cresult,0,.t.) <0

?oreader.msg

else

browse

endif

緩衝表識別規則:

當設為0自動時:無主鍵或主鍵值等於(nullor空串)識別為新增

有主鍵值,識別為修改

有名為qystatus的鍵,值為del,識別為刪除

設為1新增模式:無論有無主鍵,都識別為新增

設為2修改模式:有主鍵,都識別為修改

設為3刪除模式:有主鍵,都識別為刪除

另外這個類可以與祺佑三層開發框架的dal_ca類完美配合,實現一鍵儲存到sql server,以後再介紹。

如何把store裡的所有資料轉換成JSON傳給後台

基本方法,ext提供的編碼轉換方式,但是我這邊失敗了。var lstaddrecord new array store.each function record ext.ajax.request 這是我自己的轉換方法 var panelstore ext.getcmp global.menu id ...

使用Python轉換word文件到JSON

需求是有一堆這樣的word文件,要轉換成試題,供web介面使用。file docx.document 2018 廉潔自律準則 知識競賽試題及答案.docx list val none for para in file.paragraphs v para.text.split for line in ...

nodejs中Excel資料轉換為JSON格式資料

這裡我用到的模組是 node xlxs 當然還有其他評價比較高的js xlsx,但是使用有點複雜,所以這裡演示node xlxs的使用。好吧直接上來貼 var xlsx2json require node xlsx var list xlsx2json.parse test.xlsx console...