QuickLib
QuickLib copied to clipboard
Quick.YAML hibrid array makes empty lines?
Something whong with TYamlArray when TYamlObject with TYamlString inside.
procedure TfmMain.FormCreate(Sender: TObject);
begin
var doc := TYamlObject.Create;
try
doc.AddPair('String', 'Value1');
doc.AddPair('Integer', TYamlInteger.Create(38));
var arr1 := TYamlArray.Create;
arr1.AddElement(TYamlString.Create('String1'));
arr1.AddElement(TYamlString.Create('String2'));
var arrObj1 := TYamlObject.Create;
arrObj1.AddPair('ArrObj1String1', 'more');
arrObj1.AddPair('ArrObj1String2', 'AndMore');
arr1.AddElement(arrObj1); // add arrObj to array
doc.AddPair('TheArray', arr1); // add arr to doc
Memo1.Lines.Text := doc.ToYaml;
finally
FreeAndNil(doc);
end;
end;
Memo1 text now looks like this.
String: Value1
Integer: 38
TheArray:
- ArrObj1String1: more
ArrObj1String2: AndMore
Awaited result is
String: Value1
Integer: 38
TheArray:
- String1
- String2
- ArrObj1String1: more
ArrObj1String2: AndMore
Your yaml isn't supported because must be compatible with Delphi RTTI and Delphi Arrays to allow Serialization to/from Delphi classes and types. Arrays elements must be of same kind. I think you can try with something like this to avoid this limit:
String: Value1
Integer: 38
TheObject:
TheArray1:
- String1
- String2
TheArray2:
- Arr2String1: more
- Arr2String2: AndMore