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

Go to full version