Difference between revisions of "Json parser and writer"

From VCMI Project Wiki
Jump to: navigation, search
(Replaced content with "{{Template:MovedToWebpage|https://vcmi.eu/developers/Code_Structure/#json-parser-and-writer}}")
 
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]]
 

Latest revision as of 16:30, 16 July 2024

Logo256.png    Page moved to VCMI-Homepage