JSON ==== JSON parser. It is `Variant` based and the parser must be freed. ``` var JsonParser: TJsonParser; Element: TJSONElement; I: Integer; begin JsonParser := TJSONParser.Create(); Element := JsonParser.AddObject('someObject'); Element.AddValue('someInteger', 123); Element.AddValue('someString', 'HelloWorld'); for I := 0 to Element.Count - 1 do WriteLn(Element.Item[I].ValueType); end. ``` ---- TJSONElement.Keys ----------------- ``` property TJSONElement.Keys: TStringArray; ``` ---- TJSONElement.Values ------------------- ``` property TJSONElement.Values: TVariantArray; ``` ---- TJSONElement.Count ------------------ ``` property TJSONElement.Count: Integer; ``` ---- TJSONElement.Item ----------------- ``` property TJSONElement.Item[Index: Integer]: TJSONElement; ``` ---- TJSONElement.ValueType ---------------------- ``` property TJSONElement.ValueType: EJSONValueType; ``` ---- TJSONElement.Value ------------------ ``` property TJSONElement.Value: Variant; ``` ``` property TJSONElement.Value(NewValue: Variant); ``` ---- TJSONElement.IsValue -------------------- ``` property TJSONElement.IsValue: Boolean; ``` ---- TJSONElement.IsArray -------------------- ``` property TJSONElement.IsArray: Boolean; ``` ---- TJSONElement.IsObject --------------------- ``` property TJSONElement.IsObject: Boolean; ``` ---- TJSONElement.AsString --------------------- ``` property TJSONElement.AsString: String; ``` ---- TJSONElement.AddValue --------------------- ``` procedure TJSONElement.AddValue(Key: String; Value: Variant); ``` ---- TJSONElement.AddArray --------------------- ``` function TJSONElement.AddArray(Key: String): TJSONElement; ``` ---- TJSONElement.AddArray --------------------- ``` function TJSONElement.AddArray(Key: String; Values: TVariantArray): TJSONElement; ``` ---- TJSONElement.AddObject ---------------------- ``` function TJSONElement.AddObject(Key: String): TJSONElement; ``` ---- TJSONElement.AddNull -------------------- ``` function TJSONElement.AddNull(Key: String): TJSONElement; ``` ---- TJSONElement.AddElement ----------------------- ``` procedure TJSONElement.AddElement(Key: String; Element: TJSONElement); ``` ---- TJSONElement.Clone ------------------ ``` function TJSONElement.Clone: TJSONElement; ``` ---- TJSONElement.Delete ------------------- ``` procedure TJSONElement.Delete(Key: String); ``` ---- TJSONElement.Delete ------------------- ``` procedure TJSONElement.Delete(Index: Integer); ``` ---- TJSONElement.Clear ------------------ ``` procedure TJSONElement.Clear; ``` ---- TJSONElement.Find ----------------- ``` function TJSONElement.Find(Key: String; out Element: TJSONElement): Boolean; ``` ---- TJSONElement.HasKey ------------------- ``` function TJSONElement.HasKey(Key: String): Boolean; ``` Returns `True` if the `Key` exists in the JSON object. ---- TJSONElement.HasKey ------------------- ``` function TJSONElement.HasKey(Keys: TStringArray): Boolean; ``` Returns `True` if **any** of the `Keys` exists in the JSON object. ---- TJSONElement.HasKeys -------------------- ``` function TJSONElement.HasKeys(Keys: TStringArray): Boolean; ``` Returns `True` if **all** `Keys` exists in the JSON object. ---- TJSONParser.Create ------------------ ``` function TJSONParser.Create(Str: String = ''): TJSONParser; static; ``` Create a JSON Parser. Optional `Str` parameter which will parse the string into the parser. - This needs to be free'd when finished. - This is a `static` method. Example: ``` var MyJsonParser: TJSONParser; begin MyJsonParser := TJSONParser.Create(); MyJsonParser.AddValue('someString', 'HelloWorld'); MyJsonParser.AddValue('someInt', 1234); WriteLn MyJsonParser.AsString(); MyJsonParser.Free(); end; ``` ---- TJSONParser.CreateFromFile -------------------------- ``` function TJSONParser.CreateFromFile(FileName: String): TJSONParser; static; ``` Create a JSON parser from a json file. - This needs to be free'd when finished. - This is a `static` method. Example: ``` var MyJsonParser: TJSONParser; begin MyJsonParser := TJSONParser.CreateFromFile('somefile.json'); WriteLn(MyJsonParser.Keys()); MyJsonParser.Free(); end; ``` ---- TJSONParser.SaveToFile ---------------------- ``` function TJSONParser.SaveToFile(FileName: String): Boolean; ``` ---- TJSONParser.Clear ----------------- ``` procedure TJSONParser.Clear; ``` ---- TJSONParser.AddNull -------------------- ``` function TJSONParser.AddNull(Key: String): TJSONElement; ``` ---- TJSONParser.AddValue -------------------- ``` procedure TJSONParser.AddValue(Key: String; Value: Variant); ``` ---- TJSONParser.AddArray -------------------- ``` function TJSONParser.AddArray(Key: String): TJSONElement; ``` ``` function TJSONParser.AddArray(Key: String; Values: TVariantArray): TSimbaJSONElement; ``` ---- TJSONParser.AddObject --------------------- ``` function TJSONParser.AddObject(Key: String): TJSONElement; ``` ---- TJSONParser.AddElement ---------------------- ``` procedure TJSONParser.AddElement(Key: String; Element: TJSONElement); ``` ---- TJSONParser.Find ---------------- ``` function TJSONParser.Find(Key: String; out Element: TJSONElement): Boolean; ``` ---- TJSONParser.Delete ------------------ ``` procedure TJSONParser.Delete(Key: String); ``` ---- TJSONParser.Delete ------------------ ``` procedure TJSONParser.Delete(Index: Integer); ``` ---- TJSONParser.FindPath -------------------- ``` function TJSONParser.FindPath(Path: String; out Element: TJSONElement): Boolean; ``` ---- TJSONParser.HasKey ------------------- ``` function TJSONParser.HasKey(Key: String): Boolean; ``` Returns `True` if the `Key` exists in the root JSON parser. ---- TJSONParser.HasKey ------------------- ``` function TJSONParser.HasKey(Keys: TStringArray): Boolean; ``` Returns `True` if **any** of the `Keys` exists in the root JSON parser. ---- TJSONParser.HasKeys -------------------- ``` function TJSONParser.HasKeys(Keys: TStringArray): Boolean; ``` Returns `True` if **all** `Keys` exists in the root JSON parser. ---- TJSONParser.Count ----------------- ``` property TJSONParser.Count: Integer; ``` ---- TJSONParser.Item ---------------- ``` property TJSONParser.Item[Index: Integer]: TJSONElement; ``` ---- TJSONParser.AsString -------------------- ``` property TJSONParser.AsString: String; ``` ---- TJSONParser.Values ------------------ ``` property TJSONParser.Values: TVariantArray; ``` ---- TJSONParser.Keys ---------------- ``` function TJSONParser.Keys: TStringArray; ```