byte json 互轉 資料集和JSON相互轉換

2021-10-17 05:03:16 字數 1780 閱讀 9749

使用delphi原生類實現資料集和json相互轉換

json二要素:陣列和物件。物件可以包含陣列,陣列可以包含物件。無層數限制。olevariant也類似,olevariant的乙個元素又可以是olevariant,且無層數限制。xml亦類似。這也是它們能序列一切物件的奧秒所在。

json就是字串,定義好序列後的字串格式,甚至都不需要啥json類庫,就可以自行組裝json字串和解析json字串獲取資料。

uses system.json

1)資料集轉換為json字串:

function tform1.datasettojson(adataset: tdataset): string;

// [,]

varlrecord: string;

lfield: tfield;

i: integer;

begin

result := '';

if (not adataset.active) or (adataset.isempty) then

exit;

result := '[';

adataset.disablecontrols;

adataset.first;

while not adataset.eof do

begin

for i := 0 to adataset.fieldcount - 1 do

begin

lfield := adataset.fields[i];

if lrecord = '' then

lrecord := '';

if result = '[' then

result := result + lrecord

else

result := result + ',' + lrecord;

lrecord := '';

end;

end;

adataset.next;

end;

adataset.enablecontrols;

result := result + ']';

end;

2)json字串轉換為資料集:

procedure tform1.jsontodataset(ajson: string; adataset: tdataset);

varjdataset: tjsonarray;

jrecord: tjsonobject;

i, j: integer;

begin

if (ajson = '') or (adataset = nil) or (not adataset.active) then

exit;

jdataset := tjsonobject.create.parsejsonvalue(ajson, true) as tjsonarray;

while not adataset.eof do

adataset.delete;

for i := 0 to jdataset.size - 1 do

begin

jrecord := jdataset.get(i) as tjsonobject;

for j := 0 to adataset.fieldcount - 1 do

adataset.fields[j].text := jrecord.getvalue(adataset.fields[j].fieldname).tostring;

adataset.post;

end;

end;

易語言文字型和位元組集型資料相互轉換的工具

文字和位元組集資料互相轉換的 版本 2 程式集 視窗程式集1 子程式 文字到位元組集,文字型,公開 引數 要轉換的文字,文字型 區域性變數 位元組集變數,位元組集 程式設計客棧.區域性變數 迴圈次數,整數型 區域性變數 位元組型變數,位元組集 區域性變數 要輸出的文字,文字型 區域性變數 文字資料,...

自然語言處理資料集和公開資料集

資料庫 自然語言處理的核心步驟 參考1 自然語言處理的核心步驟 參考2 自然語言處理的核心步驟 參考3 資料集 資料集合 tensorflow實現的深度nlp模型集合 github位址,100 jupter notebook實現 公開語料庫 ldc語料庫 全世界自然語言處理科學家共用的資料庫 多種演...

shell 資料的並集和差集

統計資料時經常會有這樣的要求,有檔案 和檔案 現在需要知道檔案中的資料,那些是 和 共有的,那些只出現在 檔案中 或者那些只出現在 檔案中 這樣的需求可以通過uniq命令完成。uniq d 會輸出重複行 uniq u 只顯示唯一的行 利用uniq sort 略施小計就能搞定了 例如 檔案 10010...