2
Ниже мой JSON:Delphi разбор Json с несколькими типами массивов?
{
"forms": {
"frmLogin": [
{
"frmLoginPg": "Se connecter - Application de gestion de PC"
},
{
"lbl_login_Title": "Application de gestion Pc"
},
{
"lbl_loginName": "Nom d'utilisateur"
},
{
"lblLanguage": "langue préférée"
},
{
"btnLogin": "Se connecter"
},
{
"btnReset_Loginfrm": "Réinitialiser"
}
],
"frmHome": [
{
"frmHomepg": "Accueil"
},
{
"lbladdUser_Title": "Ajouter un utilisateur"
},
{
"lblName": "prénom"
},
{
"lblEmail": "EMail"
},
{
"popmemFile": "Fichier"
}
]
}
}
Я пытаюсь получить значение, присвоенное каждый ключ, так что я могу изменить Caption
каждого компонента.
Я попробовал следующий путь, но я получаю сообщение об ошибке Invalid class typecast
:
function Translationspg.GetTranslationsJson(formNameJson, frmName_FORMJson
: TComponentName; formsam: TForm): string;
var
lJsonBytes: TBytes;
lJsonVal, lJsonScenar: TJSONValue;
lJsonScenarioValue: string; // lJsonString,
lJsonObj: TJSONObject; // , lJsonScenario
lJsonArray: TJSONArray;
lJsonScenarioEntry: TJSOnString;
lJsonPair: TJSONPair;
begin
lJsonBytes := TFile.ReadAllBytes(scJSONFileName_French);
lJsonScenar := TJSONObject.ParseJSONValue(lJsonBytes, 0);
if lJsonScenar <> nil then
begin
lJsonArray := lJsonScenar as TJSONArray;
for lJsonVal in lJsonArray do
begin
lJsonObj := lJsonVal as TJSONObject;
lJsonPair := lJsonObj.Get(formNameJson);
lJsonScenarioEntry := lJsonPair.JsonString;
lJsonScenarioValue := lJsonScenarioEntry.Value;
end;
end;
Result := lJsonScenarioValue;
end;