Sat, 22 Mar 2025 15:29:55 +0100
define structure for json.h doc
relates to #451
1143
0559812df10c
assign proper names to the documentation topics
Mike Becker <universe@uap-core.de>
parents:
1142
diff
changeset
|
1 | # JSON |
1142
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
2 | |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
3 | <warning> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
4 | New Feature - will be documented soon! |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
5 | </warning> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
6 | |
1257
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
7 | ## Parser |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
8 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
9 | ```C |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
10 | #include <cx/json.h> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
11 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
12 | void cxJsonInit(CxJson *json, const CxAllocator *allocator); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
13 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
14 | void cxJsonReset(CxJson *json); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
15 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
16 | int cxJsonFilln(CxJson *json, const char *buf, size_t len); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
17 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
18 | int cxJsonFill(CxJson *json, AnyStr str); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
19 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
20 | CxJsonStatus cxJsonNext(CxJson *json, CxJsonValue **value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
21 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
22 | void cxJsonDestroy(CxJson *json); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
23 | ``` |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
24 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
25 | <warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
26 | TODO: document |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
27 | </warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
28 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
29 | ### List of Status Codes |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
30 | |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
31 | <!-- |
1257
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
32 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
33 | * Everything is fine. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
34 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
35 | CX_JSON_NO_ERROR, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
36 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
37 | * The input buffer does not contain more data. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
38 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
39 | CX_JSON_NO_DATA, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
40 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
41 | * The input ends unexpectedly. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
42 | * |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
43 | * Refill the buffer with cxJsonFill() to complete the json data. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
44 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
45 | CX_JSON_INCOMPLETE_DATA, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
46 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
47 | * Not used as a status and never returned by any function. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
48 | * |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
49 | * You can use this enumerator to check for all "good" status results |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
50 | * by checking if the status is less than @c CX_JSON_OK. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
51 | * |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
52 | * A "good" status means, that you can refill data and continue parsing. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
53 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
54 | CX_JSON_OK, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
55 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
56 | * The input buffer has never been filled. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
57 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
58 | CX_JSON_NULL_DATA, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
59 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
60 | * Allocating memory for the internal buffer failed. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
61 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
62 | CX_JSON_BUFFER_ALLOC_FAILED, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
63 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
64 | * Allocating memory for a json value failed. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
65 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
66 | CX_JSON_VALUE_ALLOC_FAILED, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
67 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
68 | * A number value is incorrectly formatted. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
69 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
70 | CX_JSON_FORMAT_ERROR_NUMBER, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
71 | /** |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
72 | * The tokenizer found something unexpected. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
73 | */ |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
74 | CX_JSON_FORMAT_ERROR_UNEXPECTED_TOKEN |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
75 | --> |
1257
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
76 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
77 | ## Access Values |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
78 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
79 | ```C |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
80 | #include <cx/json.h> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
81 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
82 | bool cxJsonIsObject(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
83 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
84 | bool cxJsonIsArray(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
85 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
86 | bool cxJsonIsString(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
87 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
88 | bool cxJsonIsNumber(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
89 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
90 | bool cxJsonIsInteger(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
91 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
92 | bool cxJsonIsLiteral(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
93 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
94 | bool cxJsonIsBool(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
95 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
96 | bool cxJsonIsTrue(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
97 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
98 | bool cxJsonIsFalse(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
99 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
100 | bool cxJsonIsNull(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
101 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
102 | char *cxJsonAsString(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
103 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
104 | cxstring cxJsonAsCxString(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
105 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
106 | cxmutstr cxJsonAsCxMutStr(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
107 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
108 | double cxJsonAsDouble(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
109 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
110 | int64_t cxJsonAsInteger(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
111 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
112 | bool cxJsonAsBool(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
113 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
114 | size_t cxJsonArrSize(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
115 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
116 | CxJsonValue *cxJsonArrGet(const CxJsonValue *value, size_t index); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
117 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
118 | CxJsonValue *cxJsonObjGet(const CxJsonValue *value, AnyStr name); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
119 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
120 | CxIterator cxJsonArrIter(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
121 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
122 | CxIterator cxJsonObjIter(const CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
123 | ``` |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
124 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
125 | <warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
126 | TODO: document |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
127 | </warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
128 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
129 | ## Deallocate Memory |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
130 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
131 | ```C |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
132 | #include <cx/json.h> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
133 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
134 | void cxJsonValueFree(CxJsonValue *value); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
135 | ``` |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
136 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
137 | Once a JSON value is not needed anymore, the memory can be deallocated with `cxJsonValueFree()`. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
138 | Nested values are also recursively deallocated. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
139 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
140 | > Make sure that you are not accidentally deallocating values that are still part of an object or array. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
141 | > When deallocating the enclosing object/array, this will lead to a double-free. |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
142 | >{style="warning"} |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
143 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
144 | ## Create Objects |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
145 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
146 | ```C |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
147 | #include <cx/json.h> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
148 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
149 | CxJsonValue* cxJsonCreateObj(const CxAllocator* allocator); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
150 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
151 | CxJsonValue* cxJsonCreateArr(const CxAllocator* allocator); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
152 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
153 | CxJsonValue* cxJsonCreateNumber( |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
154 | const CxAllocator* allocator, double num); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
155 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
156 | CxJsonValue* cxJsonCreateInteger( |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
157 | const CxAllocator* allocator, int64_t num); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
158 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
159 | CxJsonValue* cxJsonCreateString(const CxAllocator* allocator, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
160 | const char *str); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
161 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
162 | CxJsonValue* cxJsonCreateCxString( |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
163 | const CxAllocator* allocator, cxstring str); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
164 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
165 | CxJsonValue* cxJsonCreateLiteral( |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
166 | const CxAllocator* allocator, CxJsonLiteral lit); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
167 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
168 | int cxJsonArrAddNumbers(CxJsonValue* arr, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
169 | const double* num, size_t count); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
170 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
171 | int cxJsonArrAddIntegers(CxJsonValue* arr, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
172 | const int64_t* num, size_t count); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
173 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
174 | int cxJsonArrAddStrings(CxJsonValue* arr, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
175 | const char* const* str, size_t count); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
176 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
177 | int cxJsonArrAddCxStrings(CxJsonValue* arr, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
178 | const cxstring* str, size_t count); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
179 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
180 | int cxJsonArrAddLiterals(CxJsonValue* arr, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
181 | const CxJsonLiteral* lit, size_t count); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
182 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
183 | int cxJsonArrAddValues(CxJsonValue* arr, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
184 | CxJsonValue* const* val, size_t count); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
185 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
186 | int cxJsonObjPut(CxJsonValue* obj, cxstring name, CxJsonValue* child); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
187 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
188 | CxJsonValue* cxJsonObjPutObj(CxJsonValue* obj, cxstring name); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
189 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
190 | CxJsonValue* cxJsonObjPutArr(CxJsonValue* obj, cxstring name); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
191 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
192 | CxJsonValue* cxJsonObjPutNumber(CxJsonValue* obj, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
193 | cxstring name, double num); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
194 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
195 | CxJsonValue* cxJsonObjPutInteger(CxJsonValue* obj, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
196 | cxstring name, int64_t num); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
197 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
198 | CxJsonValue* cxJsonObjPutString(CxJsonValue* obj, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
199 | cxstring name, const char* str); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
200 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
201 | CxJsonValue* cxJsonObjPutCxString(CxJsonValue* obj, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
202 | cxstring name, cxstring str); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
203 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
204 | CxJsonValue* cxJsonObjPutLiteral(CxJsonValue* obj, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
205 | cxstring name, CxJsonLiteral lit); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
206 | ``` |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
207 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
208 | <warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
209 | TODO: document |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
210 | </warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
211 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
212 | ## Writer |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
213 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
214 | ```C |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
215 | #include <cx/json.h> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
216 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
217 | typedef struct cx_json_writer_s { |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
218 | bool pretty; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
219 | bool sort_members; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
220 | uint8_t frac_max_digits; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
221 | bool indent_space; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
222 | uint8_t indent; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
223 | bool escape_slash; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
224 | } CxJsonWriter; |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
225 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
226 | CxJsonWriter cxJsonWriterCompact(void); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
227 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
228 | CxJsonWriter cxJsonWriterPretty(bool use_spaces); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
229 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
230 | int cxJsonWrite(void* target, const CxJsonValue* value, |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
231 | cx_write_func wfunc, const CxJsonWriter* settings); |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
232 | ``` |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
233 | |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
234 | <warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
235 | TODO: document |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
236 | </warning> |
946cadf95ea4
define structure for json.h doc
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
237 | |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
238 | <seealso> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
239 | <category ref="apidoc"> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
240 | <a href="https://ucx.sourceforge.io/api/json_8h.html">json.h</a> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
241 | </category> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
242 | </seealso> |