Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2019-12-08 16:55:43


On 12/8/19 7:48 AM, Peter Dimov via Boost wrote:

> As I already stated in a previous message, if your reader can only read
> what your writer writes, your format is JSON in name only. A "real" JSON
> reader must be able to read not just the literal output of the writer,
> but a modified JSON file that is (per spec) equivalent to the original.

By that definition the XML serialization implemented in the Boost
Serialization is not a "real" XML reader. So what. No serialization
library can claim to be able to read arbitrary input and automatically
map it so some pre-determined C++ data structure.

If someone is interested in a JSON format for boost serialization, he
can use the current XML setup as a model. If one feels that the current
XML implementation is not a "real" parser - that's OK too. I do get a
complaint from time to time that XML archive cannot be freely edited -
but not by anyone who understands the inherent limitations of what a C++
serialization can do.

> Which includes reordered fields, as you yourself wrote in the very
> previous paragraph.
>
>> Firstly, JSON Object is unordered, so any key permutation is a valid
>> syntax. ECMA-404 is quite explicit about this.

And for those who might want a system of editable archives - there's
another good model: Google protocol buffers. That might be a system
where one describes a data structure in terms of some JSON primitives
and the user uses a parser to pick this apart to build his C++ data
structure and maintains this coupling as time goes on. This might be a
viable, and/or interesting system, but it's unrelated to what Boost
serialization currently is and has been for 15 years.

Robert Ramey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk