| 163 > |
163 > |
| 164 > This is **not** the case for `cxJsonArrRemove()` and `cxJsonObjRemove()`, which return `NULL` in that case. |
164 > This is **not** the case for `cxJsonArrRemove()` and `cxJsonObjRemove()`, which return `NULL` in that case. |
| 165 |
165 |
| 166 > If you don't have full control over the JSON data, you should always check the datatype of a value first before accessing it. |
166 > If you don't have full control over the JSON data, you should always check the datatype of a value first before accessing it. |
| 167 >{style="note"} |
167 >{style="note"} |
| |
168 |
| |
169 ## Compare Values |
| |
170 |
| |
171 ```C |
| |
172 #include <cx/json.h> |
| |
173 |
| |
174 int cxJsonCompare(const CxJsonValue *value, |
| |
175 const CxJsonValue *other); |
| |
176 ``` |
| |
177 |
| |
178 The function `cxJsonCompare()` performs a deep comparison of two JSON values. |
| |
179 It returns zero if both values are equal except for the order of object members. |
| |
180 When the values are not equal, the return-value is an unspecified non-zero value. |
| 168 |
181 |
| 169 ## Deallocate Memory |
182 ## Deallocate Memory |
| 170 |
183 |
| 171 ```C |
184 ```C |
| 172 #include <cx/json.h> |
185 #include <cx/json.h> |