gpt4 book ai didi

json - Delphi将StringGrid中的数据保存到Json文件中

转载 作者:行者123 更新时间:2023-12-04 12:49:14 28 4
gpt4 key购买 nike

我有一个 stringGrid,第一行中的字段来自 CSV,第二行中的字段是来自数据库表的 ColumnNames。

现在点击保存按钮后,它应该会创建一个如下所示的 Json 文件

{
"GHARGA": "GHARGA",
"SELLINGPRICE1": "SELLPRICE1",
"SELLPRICE2": "SELLPRICE2",
"SELLPRICE3": "SELLPRICE3",
"PCODE": "PCODE"
}

我试过这样的:

 procedure TfrmMapping.btnsaveClick(Sender: TObject);
var
Dat1: TStringList;
i: Integer;
lJsonObj: TJSONObject;
begin
lJsonObj := TJSONObject.Create;

Dat1 := TStringList.Create;

if btnsave.Caption = 'Save' then
begin
for i := 0 to StrGrdCsv.RowCount - 1 do
begin
Dat1.AddStrings(StrGrdCsv.Rows[i]);
end;

for i := Dat1.Count - 1 Downto StrGrdCsv.ColCount do
begin
lJsonObj.AddPair(TJSONPair.Create(TJSONString.Create(Dat1.Strings[i]),
TJSONString.Create(Dat1.Strings[i])));
end;

TFile.WriteAllText(cmbBXDBTables.Text + '.json', lJsonObj.ToString);
btnsave.Caption := 'Load Data';
end;
end;

但它正在创造像

 {
"GHARGA": "GHARGA",
"SELLPRICE1": "SELLPRICE1",
"SELLPRICE2": "SELLPRICE2",
"SELLPRICE3": "SELLPRICE3",
"PCODE": "PCODE"
}

最佳答案

根据@DavidHeffemann 和@RemyLeebeau 的建议修改代码

procedure TfrmMapping.btnsaveClick(Sender: TObject);
var
i: Integer;
lJsonObj: TJSONObject;
begin
lJsonObj := TJSONObject.Create;

if btnsave.Caption = 'Save' then
begin
for i := 0 to StrGrdCsv.ColCount do
begin
lJsonObj.AddPair(StrGrdCsv.Cells[i, 0], StrGrdCsv.Cells[i, 1]);
end;
TFile.WriteAllText(cmbBXDBTables.Text + '.json', lJsonObj.ToString);
btnsave.Caption := 'Load Data';
end;
end;

修改了 For 循环并使其使用 String Grid 的 Cells 工作。

谢谢@DavidHeffemann 和@RemyLeebeau 的建议。

关于json - Delphi将StringGrid中的数据保存到Json文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41458216/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com