In JSON we typically deal with maps and arrays. The arrays themselves could
have arbitrary types (string, object, array, numeric, boolean, null) as
elements. The key types in the maps are always strings and the value types
in the maps could be anything that can appear in an array, including
another map or array.
Due to this, I'd imagine being able to use Boost.Variant or Boost.Any in a
list and as a value_type in a map would help.
Regards,
Arindam.
On Thu, Apr 11, 2013 at 3:16 AM, Stephan Bourgeois
Hi everybody, I am studying for an MSc in Computer Science at Oxford Brookes University. I have taken a compiler construction course this year and I am therefore interested in the JSON Parser idea for the Boost library.
Open Source JSON parsers have already been implemented in C++ and in Java. Examples of Java libraries are: Gson, quick-json. Even if other libraries already exist, developers who are using Boost for their project will appreciate having a JSON parser within Boost.
From a compiler construction background, writing a JSON parser is not difficult. The JSON grammar is simple and the specification is easy to find. Potential difficulties can exist with robustness of error handling and recovery.
The question is what data structure we should use to represent JSON objects, and how the user can access key/value pairs in those objects. (examples: Boost.PropertyTree, pre-existing C++ object, ...)
Ideally we should offer validating and non-validating implementations. We should also offer JSON generation as well as parsing.
Let me know what you think. Kind regards, Stephan.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost