|
|
Line 1: |
Line 1: |
− | Capable of error checking and basic error recovery. Also have optional schema validation. Located at lib/JsonNode.h.
| + | {{Template:MovedToWebpage|https://vcmi.eu/developers/Code_Structure/#json-parser-and-writer}} |
− | Currently supports only local encoding - no conversion from unicode.
| |
− | | |
− | Main class JsonNode represents one "node" from Json file (array, string, etc.).
| |
− | Basic usage:
| |
− | <syntaxhighlight lang="cpp">
| |
− | const JsonNode node("some_config.json");
| |
− | std::string value = node["value"].String();
| |
− | </syntaxhighlight>
| |
− | | |
− | Note: accessing not present in JSON fields is legal and returns correctly initialized default value. There is no need for any checks for entry presence.
| |
− | Good:
| |
− | <syntaxhighlight lang="cpp">
| |
− | int someField = config["someField"].Float();
| |
− | <someField correctly initialized>
| |
− | </syntaxhighlight>
| |
− | Bad:
| |
− | <syntaxhighlight lang="cpp">
| |
− | int someField;
| |
− | if (config["someField"].isNull())
| |
− | someField = config["someField"].Float();
| |
− | else
| |
− | someField = 0;
| |
− | <someField correctly initialized>
| |
− | </syntaxhighlight>
| |
− | | |
− | ===File formats===
| |
− | *[[Artifact Format]]
| |
− | *[[Creature Format]]
| |
− | *[[Bonus Format]]
| |
− | *[[Town Format]]
| |