Dobrý deň,
pokúšam sa rozobrať JSON - fbJsonParser
jsontest: fbJsonParser;
JSONUSINT: STRING:='{"p1": 84.62, "p2": 85.62 }';
jsontest(start := start, shrink := shrink, size := 28, sourceJSON := JSONUSINT[i], jsonItem := jsonItem);
Do premenej jsonItem mi načíta prvé elementy z JSON-u(viď. príloha). RestLen aj ukazuje zvyšných 16 znakov ale neviem ako sa posunúť na načítanie ďalšieho elementu. Viete mi poradiť ?
Ďakujem.
Odpovědi 2
M.B.
11. 9. 2023 13:38
Dobrý den,
aby parser pokračoval na další položky, je nutné po prvním volání nastavit proměnnou start
na false.
Volání může vypadat například takto:
VAR_GLOBAL
p1 {OPEN_UP} : REAL;
p2 {OPEN_UP} : REAL;
END_VAR
PROGRAM prgMain
VAR
start : BOOL;
parsing : BOOL;
jsontest: fbJsonParserEx;
JSONUSINT: STRING:='{"p1": 84.62, "p2": 85.62 }';
JsonInfo : TJsonInfo;
END_VAR
IF start THEN
parsing := true;
END_IF;
WHILE parsing DO
jsontest(start := start, size := 28, sourceJSON := void(JSONUSINT), jsonInfo := jsonInfo);
SetVarValueByName(varName := jsonInfo.item.name, varValue := JsonInfo.item.value);
parsing := NOT jsontest.eod;
start := false;
END_WHILE;
END_PROGRAM
jan
18. 9. 2023 14:10
Ďakujem, už to funguje.
Tento dotaz je vyřešený.