Hm, no, I'd advice against doing this. As the first line of those files says: "This is private data. Do not parse."

Granted, there is no elegant way of doing this at the moment, so perhaps this sort of thing is the best stop-gap measure you have. There is the C API to get this data out, but that has not been exposed publicly in a released version of systemd. Once that is available you'd listen for events like so:
http://cgit.freedesktop.org/systemd/systemd/tree/src/resolve/resolved-manager.c#n292
and then iterate through and extract data from the leases like so:
http://cgit.freedesktop.org/systemd/systemd/tree/src/resolve/resolved-manager.c#n216

(comments on the API and requests for other fields to expose received with thanks).

I just started hacking on a dbus api, which will also eventually expose the same info, but obviously that won't help you at the moment.

I'd just point out that obviously hardcoding the path to the leasefile as is done in the above snippet will only work reliably if you know that you will only have the one network interface (making 'lo' have ifindex 1 and your other interface 2).