Forum > General
[ SOLVED ] Json parse problem
(1/1)
superc:
Hello,
I've a json like this:
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---{ "Input": [ { "lang": { "bg": null, "cs": null, "da": null, "de": "asdasdasdasd", "el": null, "en": "asdasdasdasda", "es": "anmtrodsfsad", "et": null, "fr": "asdasdas", "hr": null, "hu": null, "it": "asda grill", "lt": null, "lv": null, "nl": null, "pl": "asdasdasd grilla", "pt": "asdasdasda", "ro": null, "ru": "\u0441\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0439 \u0433\u0440\u0438\u043b\u044c", "sk": null, "sl": null, "sr": null, "sv": null, "tr": null }, "val_par": 1 } ]}
I wrote a code like this :
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---var jInput,jVersions: TJSONArray; js, o,t:TJSONData; str: string; i,c: Integer; JsonFile: TFileStream; fileStream: TFileStream; tl :TStringList; stTemp : string;begin try tl := TStringList.Create; tl.LoadFromFile(fileJson); js := GetJSON(tl.Text); o := js.FindPath('Input'); if (o <> nil) and (o.JSONType = jtArray) then begin jInput := TJSONArray(o); for i := 0 to jInput.Count-1 do begin o := jInput[i].FindPath('lang'); if (o <> nil) and (o.JSONType = jtObject) then begin end; end; end; finally js.Free; tl.Free; end;end;
I don't understand how to reach language tags like "bg", "cs", etc...
Thanks in advance.
superc:
found it :
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} --- o := jInput[i].FindPath('lang'); if (o <> nil) and (o.JSONType = jtObject) then begin stTemp := o.FindPath('de').Value; end;
loaded:
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---uses fpjson; procedure TForm1.Button1Click(Sender: TObject);var jmain:TJSONData;begin jmain:=GetJSON('{"Input":[{"lang":{"bg":null,"cs":null,"da":null,"de":"asdasdasdasd","el":null,"en":"asdasdasdasda","es":"anmtrodsfsad","et":null,"fr":"asdasdas","hr":null,"hu":null,"it":"asda grill","lt":null,"lv":null,"nl":null,"pl":"asdasdasd grilla","pt":"asdasdasda","ro":null,"ru":"сенсорный гриль","sk":null,"sl":null,"sr":null,"sv":null,"tr":null},"val_par":1}]}'); showmessage(jmain.FindPath('Input').items[0].FindPath('lang').FindPath('de').AsString);end;
superc:
thanks, your code will help me for another function.
Navigation
[0] Message Index