New macros for the named JSON convertor generation #4563
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch adds several new
NLOHMANN_DEFINE_<***>_WITH_NAMES
macros. They behave the same way as the ones withoutWITH_NAMES
, but require explicit JSON names. Useful for the situation when the fields in the class are following the naming convention that you do not want to expose to JSON, e.g.or if the name in JSON cannot be used as the field name because it is reserved, e.g.
Also, this patch includes the unit tests for the new macros, and the update for the documentation.
It also fixes a small error in the docs where the
DEFINE_TYPE
macros were said to support up to 64 member variables, when in reality it is 63.This is the update to the #4092 which didn't pass the amalgamation test because I had an old version of astyle. I updated the patch to include the new
DERIVED
variations as well asONLY_SERIALIZE
. Hopefully this one will be better.Pull request checklist
Read the Contribution Guidelines for detailed information.
include/nlohmann
directory, runmake amalgamate
to create the single-header filessingle_include/nlohmann/json.hpp
andsingle_include/nlohmann/json_fwd.hpp
. The whole process is described here.