--- a/test/json.c Sat Jan 03 17:21:52 2026 +0100 +++ b/test/json.c Sat Jan 03 18:19:58 2026 +0100 @@ -315,3 +315,46 @@ cxJsonValueFree(value); } } + +CX_TEST(testJsonToSimpleObject) { + const char *jsonStr = + "{" + "\"str\":\"hello\"," + "\"str2\":\"world\"," + "\"i8\":-12," + "\"u8\":250," + "\"i64\":-1234567890123," + "\"i16\":-32000," + "\"i32\":-2000000000," + "\"u32\":4000000000," + "\"u16\":65000," + "\"u64\":123456789123456789," + "\"bt\":true," + "\"bf\":false," + "\"d\":3.141592653589793" + "}"; + + CxJsonValue *json; + cxJsonFromString(NULL, jsonStr, &json); + + CX_TEST_DO { + Test1 *obj = dbuJsonToObject(test1_class, NULL, json); + + CX_TEST_ASSERT(obj); + CX_TEST_ASSERT(!cx_strcmp(obj->str, "hello")); + CX_TEST_ASSERT(!cx_strcmp(obj->str2, "world")); + CX_TEST_ASSERT(obj->i8 == -12); + CX_TEST_ASSERT(obj->u8 == 250); + CX_TEST_ASSERT(obj->i64 == -1234567890123); + CX_TEST_ASSERT(obj->i16 == -32000); + CX_TEST_ASSERT(obj->i32 == -2000000000); + CX_TEST_ASSERT(obj->u32 == 4000000000); + CX_TEST_ASSERT(obj->u16 == 65000); + CX_TEST_ASSERT(obj->u64 == 123456789123456789); + CX_TEST_ASSERT(obj->bt); + CX_TEST_ASSERT(!obj->bf); + CX_TEST_ASSERT(obj->d < 3.1416 && obj->d > 3.1415); + + free(obj); + } +}