In reply to @Ethin "Question\: for `std/json`, how": `std/json` has the `JsonNode` type. It's an object variant (similar to a sum type or enum type in other languages; variants should have updated syntax in Nim in the future). A `JsonNode` can be queried for what Json type it is. That type can be resolved using the conversion routines (`getInt`, `getStr`). You can use `[]` to index a `JsonNode` by string (if it's a map) or integer (if it's an array). This can throw. `%` can convert essentially any simple Nim object into JSON directly. `$` gives you a compact JSON string. `pretty()` gives you a prettified string.