--- a/docs/Writerside/topics/json.h.md Mon Nov 24 22:39:18 2025 +0100 +++ b/docs/Writerside/topics/json.h.md Tue Nov 25 20:35:27 2025 +0100 @@ -106,6 +106,8 @@ CxJsonValue *cxJsonArrRemove(const CxJsonValue *value, size_t index); +size_t cxJsonObjSize(const CxJsonValue *value); + CxJsonValue *cxJsonObjGet(const CxJsonValue *value, AnyStr name); CxJsonValue *cxJsonObjRemove(const CxJsonValue *value, AnyStr name); @@ -182,10 +184,7 @@ const CxAllocator* allocator, int64_t num); CxJsonValue* cxJsonCreateString(const CxAllocator* allocator, - const char *str); - -CxJsonValue* cxJsonCreateCxString( - const CxAllocator* allocator, cxstring str); + AnyStr str); CxJsonValue* cxJsonCreateLiteral( const CxAllocator* allocator, CxJsonLiteral lit); @@ -208,26 +207,23 @@ int cxJsonArrAddValues(CxJsonValue* arr, CxJsonValue* const* val, size_t count); -int cxJsonObjPut(CxJsonValue* obj, cxstring name, CxJsonValue* child); +int cxJsonObjPut(CxJsonValue* obj, AnyStr name, CxJsonValue* child); -CxJsonValue* cxJsonObjPutObj(CxJsonValue* obj, cxstring name); +CxJsonValue* cxJsonObjPutObj(CxJsonValue* obj, AnyStr name); -CxJsonValue* cxJsonObjPutArr(CxJsonValue* obj, cxstring name); +CxJsonValue* cxJsonObjPutArr(CxJsonValue* obj, AnyStr name); CxJsonValue* cxJsonObjPutNumber(CxJsonValue* obj, - cxstring name, double num); + AnyStr name, double num); CxJsonValue* cxJsonObjPutInteger(CxJsonValue* obj, - cxstring name, int64_t num); + AnyStr name, int64_t num); CxJsonValue* cxJsonObjPutString(CxJsonValue* obj, - cxstring name, const char* str); - -CxJsonValue* cxJsonObjPutCxString(CxJsonValue* obj, - cxstring name, cxstring str); + AnyStr name, AnyStr str); CxJsonValue* cxJsonObjPutLiteral(CxJsonValue* obj, - cxstring name, CxJsonLiteral lit); + AnyStr name, CxJsonLiteral lit); ``` The `cxJsonCreateXY()`-family of functions can be used to create JSON values which are allocated by the specified `allocator`. @@ -256,33 +252,33 @@ ```C CxJsonValue *obj = cxJsonCreateObj(NULL); -cxJsonObjPutLiteral(obj, CX_STR("bool"), CX_JSON_FALSE); -cxJsonObjPutInteger(obj, CX_STR("int"), 47); +cxJsonObjPutLiteral(obj, "bool", CX_JSON_FALSE); +cxJsonObjPutInteger(obj, "int", 47); -CxJsonValue *strings = cxJsonObjPutArr(obj, CX_STR("strings")); +CxJsonValue *strings = cxJsonObjPutArr(obj, "strings"); cxJsonArrAddStrings(strings, (const char*[]) {"hello", "world"}, 2); -CxJsonValue *nested = cxJsonObjPutObj(obj, CX_STR("nested")); -CxJsonValue *objects = cxJsonObjPutArr(nested, CX_STR("objects")); +CxJsonValue *nested = cxJsonObjPutObj(obj, "nested"); +CxJsonValue *objects = cxJsonObjPutArr(nested, "objects"); CxJsonValue *obj_in_arr[2] = { cxJsonCreateObj(NULL), cxJsonCreateObj(NULL), }; -cxJsonObjPutInteger(obj_in_arr[0], CX_STR("name1"), 1); -cxJsonObjPutInteger(obj_in_arr[0], CX_STR("name2"), 3); +cxJsonObjPutInteger(obj_in_arr[0], "name1", 1); +cxJsonObjPutInteger(obj_in_arr[0], "name2", 3); -cxJsonObjPutInteger(obj_in_arr[1], CX_STR("name2"), 7); -cxJsonObjPutInteger(obj_in_arr[1], CX_STR("name1"), 3); +cxJsonObjPutInteger(obj_in_arr[1], "name2", 7); +cxJsonObjPutInteger(obj_in_arr[1], "name1", 3); cxJsonArrAddValues(objects, obj_in_arr, 2); -cxJsonArrAddNumbers(cxJsonObjPutArr(nested, CX_STR("floats")), +cxJsonArrAddNumbers(cxJsonObjPutArr(nested, "floats"), (double[]){3.1415, 47.11, 8.15}, 3); -cxJsonArrAddLiterals(cxJsonObjPutArr(nested, CX_STR("literals")), +cxJsonArrAddLiterals(cxJsonObjPutArr(nested, "literals"), (CxJsonLiteral[]){CX_JSON_TRUE, CX_JSON_NULL, CX_JSON_FALSE}, 3); -CxJsonValue *ints = cxJsonObjPutArr(nested, CX_STR("ints")); +CxJsonValue *ints = cxJsonObjPutArr(nested, "ints"); cxJsonArrAddIntegers(ints, (int64_t[]){4, 8, 15}, 3); CxJsonValue *nested_array = cxJsonCreateArr(NULL);