Thema: Delphi JSon Formatieren

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

JSon Formatieren

  Alt 24. Feb 2018, 11:41
Unter XE wäre das eine Lösung.
Delphi-Quellcode:
program jsonformatter;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils,
  rest.json,
  system.json;
 
var
  LJSONObject : TJSONObject;
  jsonString : String;
  resultStr : String;
begin
  try
    jsonString := '{"menu": { "id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},{"value": "Open", "onclick": "OpenDoc()"},{"value": "Close", "onclick": "CloseDoc()"}]}}}';
    LJSONObject := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(jsonString), 0) as TJSONObject;
    resultStr := REST.Json.TJson.Format(LJSONObject);
    writeln(resultStr);
    readln;
    { TODO -oUser -cConsole Main : Insert code here }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Habe aber kein XE sondern D2010..
Hat vielleicht jemand dafür eine Praktikable Lösung um JSon zu formatieren?

Meine Datei sieht als Bsp. so aus.
Zitat:
{"page":1,"total_results":6,"total_pages":1,"resul ts":[{"vote_count":13,"id":23114,"video":false,"vote_av erage":6.6,"title":"Der kleine Lord","popularity":4.214607,"poster_path":"\/nHScGmwreC5JuAKUZYr9gEhkkU8.jpg","original_languag e":"en","original_title":"Little Lord Fauntleroy","genre_ids":[18,10751],"backdrop_path":"\/hREgoyvqKnCgNg7AJwRvDhuWX1G.jpg","adult":false,"ov erview":"Seit dem Tod seines englischen Vaters lebt der junge Cedric allein mit seiner Mutter in Brooklyn. Eines Tages erhält er Nachricht von seinem Großvater, dem Earl von Dorincourt, der seinerzeit Cedrics Vater wegen der Heirat mit Cedrics Mutter verstoßen hatte. Cedric ist der einzige lebende Nachkomme des Earls und soll nun bei ihm auf sein Erbe vorbereitet werden. Auch die Mutter darf mit nach England reisen, muss aber unter den Hausangestellten leben. Schon bald schließt der alte Earl den ebenso intelligenten wie höflichen Cedric ins Herz. Doch da meldet unerwartet eine andere Partei Ansprüche auf das Erbe an.","release_date":"1936-03-06"},{"vote_count":44,"id":38602,"video":false,"vo te_average":7,"title":"Der kleine Lord","popularity":4.176422,"poster_path":"\/9YAN1UW0ziDojl65Ou2cJbieZOo.jpg","original_languag e":"en","original_title":"Little Lord Fauntleroy","genre_ids":[10770,10751,18],"backdrop_path":"\/8T59a0IHQBLXZ5s18tycclL5vT.jpg","adult":false,"ove rview":"Der siebenjährige Cedric Errol lebt mit seiner amerikanischen Mutter in sehr bescheidenen Verhältnissen. Eines Tages taucht ein Mann auf und erklärt, dass Cedric der einziger Erbe des Titels und Vermögens seines Großvaters ist. Cedric soll den Titel Lord Fauntleroy erhalten und im Schloss des Großvaters leben und erzogen werden.","release_date":"1980-11-25"},{"vote_count":0,"id":374369,"video":false,"vo te_average":0,"title":"Der kleine Lord","popularity":1.001648,"poster_path":null,"or iginal_language":"de","original_title":"Der kleine Lord","genre_ids":[10751],"backdrop_path":null,"adult":false,"overview":"Ei n deutsches Film-Drama","release_date":"1962-12-24"},{"vote_count":1,"id":377104,"video":false,"vo te_average":5,"title":"Der Kleine Lord","popularity":1.053292,"poster_path":null,"or iginal_language":"it","original_title":"Il Piccolo Lord","genre_ids":[],"backdrop_path":null,"adult":false,"overview":"De r elfjährige Christian lebt mit seiner italienischen Mutter Gioia in armen Verhältnissen auf der Insel Ischia. Sein deutscher Vater starb während eines Rettungseinsatzes noch bevor Christian auf die Welt kam. Der freundliche Junge hatte ein unauffälliges und ruhiges Leben, bis ihn eines Tages sein Großvater Carl Schneibel findet. Carl Schneibel ist ein reicher Geschäftsmann, der Christian noch nie zuvor zu Gesicht bekommen hat. Da der alte einsame Mann keinen Erben hat, entscheidet er, dass er Christian aufnimmt und ihm eine gute Ausbildung zukommen lässt. Da er auch nie einer Meinung mit seinem Sohn und der Wahl seiner Frau war, entscheidet er, dass Gioia nicht mitkommen kann. Trotzdem will Gioia nicht dem Glück ihres Sohnes im Weg stehen und lässt ihn gehen. Dank seines großes Herzens und seiner netten Art gewinnt Christian das Herz seines Großvaters und verändert sein komplettes Leben","release_date":"1996-12-18"},{"vote_count":1,"id":377137,"video":false,"vo te_average":6,"title":"Der Kleine Lord - Retter in der Not","popularity":1.036868,"poster_path":"\/nvxeajudLFNXD7cPj4oCOVg7DAy.jpg","original_languag e":"it","original_title":"Il Ritorno del piccolo lord","genre_ids":[],"backdrop_path":null,"adult":false,"overview":"Ch ristian lebt seit dem Tod seines Vaters bei seinem Großvater, dem wohlhabenden Brauerei-Betreiber Carl Schneibel. Gemeinsam verbringen Großvater und Enkel die Ferien auf der Insel Ischia bei Christians italienischer Mama Gioia. Carl lernt dort die charmante Veronica kennen und lädt sie arglos ins heimische Schlösschen in Bayern. Was er nicht ahnt: Veronica ist eine international gesuchte Betrügerin, die den Unternehmer durch geschickte Computer-Manipulationen nach und nach um sein gesamtes Vermögen bringt. Verbittert und verarmt reist Carl erneut nach Ischia, um sich von dem Schock zu erholen. Enkel Christian nutzt derweil seinerseits die Möglichkeiten des Internets, um Veronica dingfest zu machen.","release_date":"2000-12-15"},{"vote_count":0,"id":109537,"video":false,"vo te_average":0,"title":"Entführt","popularity":1.87 3076,"poster_path":"\/9d7Zul9qSmQDrgTRfdM9YEMvh0d.jpg","original_languag e":"en","original_title":"Kidnapped","genre_ids ":[12,18],"backdrop_path":"\/4sHgdXFkakJjclm8mBgcRkWWYao.jpg","adult":false,"ov erview":"Handlung: Nach dem Tod seines Vaters sucht der junge David Balfour (FREDDIE BARTHOLOMEW) seinen Onkel Ebenezer (MILES MANDER), einen alten und kauzigen Mann auf, um bei ihm zu leben. Weil die Brüder so unterschiedlich erscheinen, forscht David nach seiner Herkunft und erfährt, daß das Anwesen eigentlich seinem Vater gehörte, doch noch bevor David sein Recht einfordern kann, läßt ihn Ebenezer entführen und verschleppen. Zwischen all den gefährlichen Männern an Bord, bringt es David unter vielen Gefahren zum Kabinensteward, als man nach einer Kollision den Schotten Alan Breck (WARNER BAXTER) aus der See fischt, der nach Schottland zurück will...","release_date":"1938-05-27"}]}
Das kann aber niemand vernünftig lesen.

gruss

Geändert von EWeiss (24. Feb 2018 um 11:43 Uhr)
  Mit Zitat antworten Zitat