我使用 INNO JSON Config(如这篇文章)读取一个简单的 JSON 文件:
{
"Item_0":{
"Key_1": "String 1",
"Key_2": "1",
"Key_3": "True"
},
"Item_1":{
"Key_1": "String 2",
"Key_2": "2",
"Key_3": "False"
}
}
这是我的代码:
[Code]
function ParseJson(Filename: WideString; Item: String; Key: String; var ItemArray: array of WideString): Boolean;
var
StrValue: WideString;
StrLength: Integer;
ItemNumber: Integer;
Path: WideString;
begin
SetLength(StrValue, 16);
StrLength := Length(StrValue);
Path := ExpandConstant('{tmp}'+ '\json_lists\' + Filename);
ItemNumber := 0;
while JSONQueryString(Path, ExpandConstant(Item + '_' + IntToStr(ItemNumber)), Key, 'Default', StrValue, StrLength) then
begin
Log(StrValue + ' item has been found'); // only prompts in the Log the StrValue but not 'item has been found'
ItemNumber := ItemNumber + 1;
end;
return := True;
end;
问题是我需要在此之后将 StrValue(这是一个 WideString)与例如 '.json' 连接起来,如下所示:
FileName2 := StrValue + '.json'
,但是 Log(FileName2)
的输出没有 '.json' 后缀。我该怎么做?
理想情况下,我只想处理 String 而不是 WideString,所以我应该编写另一个 JSON 解析 dll,它给我一个 String 而不是 WideString(我真的不知道该怎么做)? 我尝试使用 Json Parser Library 但我无法弄清楚它是如何工作的,即使有 this post,所以欢迎任何帮助!