Klar, gehen müsste das auch: Es zwingt dich ja niemand in einem einzigen Statement, ohne abzusetzen, das Array auch wieder direkt abzuschließen.
Du könntest doch:
- Builder.BeginObject()
- .BeginArray()
- Jetzt durch dein TDataSet und jedesmal machen Builder.BeginObject(..) bla bla .EndObject()
- Wenn du damit fertig bist: Builder.EndArray().EndObject()
Stelle ich mir nur mit vernünftiger
Exception-Behandlung (Array und Objekt auf jeden Fall ordentlich abschließen) etwas schwieriger vor.
PS: Genannt wird die "neuere Technik" übrigens "Fluent Interface".
http://blog.marcocantu.com/blog/fluent_delphi.html