DynXX-Cxx
Loading...
Searching...
No Matches
Json.hxx
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4
5#include "Types.hxx"
6#include "../C/Json.h"
7
8enum class DynXXJsonNodeTypeX : uint8_t {
10 Object,
11 Array,
12 String,
13 Int32,
14 Int64,
15 Float,
16 Boolean,
17 Null,
18};
19
20using DynXXJsonDecoderReadChildrenCallback = std::function<void(size_t idx, DynXXJsonNodeHandle childNode, DynXXJsonNodeTypeX childType, std::string_view childName)>;
21
22DynXXJsonNodeTypeX dynxxJsonNodeReadType(DynXXJsonNodeHandle node);
23
24std::optional<std::string> dynxxJsonNodeReadName(DynXXJsonNodeHandle node);
25
26std::optional<std::string> dynxxJsonNodeToStr(DynXXJsonNodeHandle node);
27
28std::optional<std::string> dynxxJsonFromDictAny(const DictAny &dict);
29
30std::optional<DictAny> dynxxJsonToDictAny(const std::string &json);
31
32DynXXJsonDecoderHandle dynxxJsonDecoderInit(std::string_view json);
33
34DynXXJsonNodeHandle dynxxJsonDecoderReadNode(DynXXJsonDecoderHandle decoder, std::string_view k, DynXXJsonNodeHandle node = 0);
35
36std::optional<std::string> dynxxJsonDecoderReadString(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node = 0);
37
38std::optional<int64_t> dynxxJsonDecoderReadInteger(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node = 0);
39
40std::optional<double> dynxxJsonDecoderReadFloat(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node = 0);
41
42DynXXJsonNodeHandle dynxxJsonDecoderReadChild(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node = 0);
43
44size_t dynxxJsonDecoderReadChildrenCount(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node = 0);
45
46void dynxxJsonDecoderReadChildren(DynXXJsonDecoderHandle decoder, DynXXJsonDecoderReadChildrenCallback &&callback, DynXXJsonNodeHandle node = 0);
47
48DynXXJsonNodeHandle dynxxJsonDecoderReadNext(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node = 0);
49
50void dynxxJsonDecoderRelease(DynXXJsonDecoderHandle decoder);
DynXXJsonNodeHandle dynxxJsonDecoderReadChild(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node=0)
std::function< void(size_t idx, DynXXJsonNodeHandle childNode, DynXXJsonNodeTypeX childType, std::string_view childName)> DynXXJsonDecoderReadChildrenCallback
Definition Json.hxx:20
DynXXJsonNodeHandle dynxxJsonDecoderReadNext(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node=0)
std::optional< int64_t > dynxxJsonDecoderReadInteger(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node=0)
size_t dynxxJsonDecoderReadChildrenCount(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node=0)
DynXXJsonNodeHandle dynxxJsonDecoderReadNode(DynXXJsonDecoderHandle decoder, std::string_view k, DynXXJsonNodeHandle node=0)
std::optional< DictAny > dynxxJsonToDictAny(const std::string &json)
std::optional< std::string > dynxxJsonNodeToStr(DynXXJsonNodeHandle node)
void dynxxJsonDecoderRelease(DynXXJsonDecoderHandle decoder)
DynXXJsonNodeTypeX
Definition Json.hxx:8
std::optional< std::string > dynxxJsonDecoderReadString(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node=0)
std::optional< double > dynxxJsonDecoderReadFloat(DynXXJsonDecoderHandle decoder, DynXXJsonNodeHandle node=0)
DynXXJsonNodeTypeX dynxxJsonNodeReadType(DynXXJsonNodeHandle node)
std::optional< std::string > dynxxJsonFromDictAny(const DictAny &dict)
DynXXJsonDecoderHandle dynxxJsonDecoderInit(std::string_view json)
std::optional< std::string > dynxxJsonNodeReadName(DynXXJsonNodeHandle node)
void dynxxJsonDecoderReadChildren(DynXXJsonDecoderHandle decoder, DynXXJsonDecoderReadChildrenCallback &&callback, DynXXJsonNodeHandle node=0)
std::unordered_map< std::string, Any > DictAny
Definition Types.hxx:247