Advertisement
wprins

[delphi-en] Convert stl of name/value pairs to JSON array.

Aug 25th, 2012
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.32 KB | None | 0 0
  1. program Project3;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils, DBXJson, Classes;
  7.  
  8. function GetJSonObjectFor(stl : TStringList) : TJsonObject;
  9. // Caller is responsible for freeing the returned object!
  10. var RootJsonObj, PairsJsonObj : TJsonObject;
  11.     AJsonArray : TJsonArray;
  12.     AJsonPair : TJsonPair;
  13.     i : Integer;
  14. begin    
  15.   AJsonArray := TJsonArray.Create();            
  16.   RootJsonObj := TJsonObject.Create(TJSONPair.Create('Array', AJsonArray));
  17.  
  18.   for i := 0 to stl.Count-1 do
  19.   begin
  20.     PairsJsonObj := TJsonObject.Create();
  21.     PairsJsonObj.AddPair(TJsonPair.Create('ID', stl.Names[i] ));
  22.     PairsJsonObj.AddPair(TJsonPair.Create('Status', stl.ValueFromIndex[i]));
  23.     AJsonArray.AddElement(PairsJsonObj);  
  24.   end;
  25.  
  26.   result := RootJsonObj  
  27. end;
  28.  
  29. var
  30.   Sourcedata : TStringList;
  31.   AJsonObj : TJsonObject;
  32.    
  33. begin
  34.   try
  35.     SourceData := nil;
  36.     AJsonObj := nil;
  37.     try
  38.       SourceData := TStringList.Create;    
  39.       SourceData.Values['14'] := 'AOK';
  40.       SourceData.Values['15'] := 'Bad';
  41.       SourceData.Values['16'] := 'AOK';
  42.  
  43.       AJsonObj := GetJSonObjectFor(SourceData);
  44.  
  45.       writeln(AJsonObj.ToString);
  46.       readln;
  47.     finally
  48.       SourceData.Free;
  49.       AJsonObj.Free;
  50.     end;
  51.   except
  52.     on E: Exception do
  53.       Writeln(E.ClassName, ': ', E.Message);
  54.   end;
  55. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement