Kantan AutoJSON provides Blueprint nodes for converting data between UE4 types and JSON. It harnesses the UE4 property system to create mappings automatically so there is no need for direct JSON manipulation. Simply wire up any object, struct or container (array, map, set) to a single node and the plugin will map the data to, or import from, an equivalent JSON representation.
Possible use cases:
- Initialization of data-driven systems (the JSON representation is very intuitive; to author data directly, simply ensure the JSON field keys match the UE4 variable names of your struct/class).
- Runtime saving/loading of game state.
- Custom networking code.
- Design time editor scripting with Blutilities, such as asset generation and procedural level building.
LIMITATIONS AND NOTES:
- This plugin does not provide any low level JSON manipulation nodes, but converts to/from JSON text in a single operation. Any further composition/modification of the JSON would require another plugin or solution.
- Since Blueprint is statically typed, it is assumed you always know in advance the structure of the JSON data you want to load. As such, dynamic creation of objects from JSON is not supported - you must have an existing object, which you plug into the Deserialize node, and will then be populated with the JSON data.
- Recursive serialization of sub-object properties is currently not supported. For example, if serializing an actor, properties on its components will not be included (though you can of course explicitly serialize components yourself if needed).
- Two way conversion between Blueprint types and JSON text.
- Custom nodes allow any compatible variable to be plugged in. The plugin works out the equivalent JSON format based on the wired in variable.
- Can automatically serialize any object, struct, array, set, or map with a string/name key. Multiple layers of nesting is automatically handled, with the exception of instanced sub-objects.
- Variables within a class/struct can optionally be filtered from serialization by use of the Transient/SaveGame flags.
- Custom serializers can be added by the user (in C++) if more control is needed.
- Provides simple utility nodes for reading/writing text from/to file.
Network Replicated: N/A
Supported Development Platforms: Windows
Supported Target Build Platforms: Windows, Android
Node Reference | User Guide