The Juniper libxo [1] library is an interesting approach which preserves the traditional text output but also gives an option to output structured data:
The libxo library allows an application to generate text,
XML, JSON, and HTML output using a common set of function
calls. The application decides at run time which output
style should be produced.
There is some work ongoing to convert FreeBSD utilities to support libxo [2] and a long thread on freebsd-arch [3][1] https://juniper.github.io/libxo/libxo-manual.html
[2] https://wiki.freebsd.org/LibXo
[3] https://lists.freebsd.org/pipermail/freebsd-arch/2014-July/0...