
Boris,
there is a JSON parser (based on Boost.Spirit) and a writer in Boost.PropertyTree (see http://kaalus.atspace.com/ptree/doc/index.html#json_parser). The problem with the writer is though that all values (except numbers) are written as strings (for example you load a boolean value true but it's written as "true"). You might be able to use the code from Boost.PropertyTree though (and maybe improve the writer, too ;).
Thank you for the links, I will definitely take your suggestion into consideration. I have actually been doing some research on the different C++ JSON implementations, and there seems there is no *complete* end-to-end solution. There are many holes and inconsistencies, like the one you mentioned. My aim is to create a complete implementation, based on the standard [i|o]archive Serialization interface that supports various encoding formats, reads and writes, creates output in standard format, is well documented and has tests. Do you think this is a worth while goal? Jeremy