One thing I'd say that if you're going to create a "JSON like" format, just go the whole hog and use JSON. Your current format is close enough that it should be trivial to make it JSON compatible (replace = with :, wrap the names in "", etc). You'd need to lose the array lengths, but they're pointless anyway
You're losing all the benefits of a standard file format (if you want to send your serialised object to another service for example).
QuoteCan implement the writer/reader with the same code (instead of two different functions).
Why? Serialising/deserialising are separate concerns.