| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #include "RyanJsonBaseTest.h"
- /* --------------------------------------- jsonTest ------------------------------------------- */
- void printJsonDebug(RyanJson_t json)
- {
- char *str = RyanJsonPrint(json, 1024, RyanJsonTrue, NULL);
- printf("aa %s\r\n", str);
- RyanJsonFree(str);
- }
- RyanJsonBool_e rootNodeCheckTest(RyanJson_t json)
- {
- if (!RyanJsonIsInt(RyanJsonGetObjectToKey(json, "inter")) || 16 != RyanJsonGetIntValue(RyanJsonGetObjectToKey(json, "inter")))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsDouble(RyanJsonGetObjectToKey(json, "double")) ||
- !RyanJsonCompareDouble(RyanJsonGetDoubleValue(RyanJsonGetObjectToKey(json, "double")), 16.89))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsString(RyanJsonGetObjectToKey(json, "string")) ||
- strcmp(RyanJsonGetStringValue(RyanJsonGetObjectToKey(json, "string")), "hello"))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsBool(RyanJsonGetObjectToKey(json, "boolTrue")) ||
- RyanJsonGetBoolValue(RyanJsonGetObjectToKey(json, "boolTrue")) != RyanJsonTrue)
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsBool(RyanJsonGetObjectToKey(json, "boolFalse")) ||
- RyanJsonGetBoolValue(RyanJsonGetObjectToKey(json, "boolFalse")) != RyanJsonFalse)
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsNull(RyanJsonGetObjectToKey(json, "null"))) { RyanJsonCheckReturnFalse(NULL); }
- return RyanJsonTrue;
- }
- RyanJsonBool_e itemNodeCheckTest(RyanJson_t json)
- {
- RyanJson_t item = RyanJsonGetObjectToKey(json, "item");
- if (RyanJsonTrue != rootNodeCheckTest(item)) { RyanJsonCheckReturnFalse(NULL); }
- return RyanJsonTrue;
- }
- RyanJsonBool_e arrayNodeCheckTest(RyanJson_t json)
- {
- RyanJson_t item = NULL;
- // 判断是不是数组类型
- if (!RyanJsonIsArray(RyanJsonGetObjectToKey(json, "arrayInt"))) { RyanJsonCheckReturnFalse(NULL); }
- if (!RyanJsonIsArray(RyanJsonGetObjectToKey(json, "arrayDouble"))) { RyanJsonCheckReturnFalse(NULL); }
- if (!RyanJsonIsArray(RyanJsonGetObjectToKey(json, "arrayString"))) { RyanJsonCheckReturnFalse(NULL); }
- if (!RyanJsonIsArray(RyanJsonGetObjectToKey(json, "array"))) { RyanJsonCheckReturnFalse(NULL); }
- /**
- * @brief 检查弱类型数组
- *
- */
- // array: [16, 16.89, "hello", true, false, null],
- if (!RyanJsonIsInt(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 0)) ||
- 16 != RyanJsonGetIntValue(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 0)))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsDouble(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 1)) ||
- !RyanJsonCompareDouble(RyanJsonGetDoubleValue(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 1)), 16.89))
- {
- printf("%s:%d 解析失败 %f\r\n", __FILE__, __LINE__,
- RyanJsonGetDoubleValue(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 1)));
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsString(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 2)) ||
- 0 != strcmp(RyanJsonGetStringValue(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 2)), "hello"))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsBool(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 3)) ||
- RyanJsonGetBoolValue(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 3)) != RyanJsonTrue)
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsBool(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 4)) ||
- RyanJsonGetBoolValue(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 4)) != RyanJsonFalse)
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (!RyanJsonIsNull(RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "array"), 5))) { RyanJsonCheckReturnFalse(NULL); }
- /**
- * @brief 检查强类型数组
- *
- */
- for (int32_t count = 0; count < RyanJsonGetSize(RyanJsonGetObjectToKey(json, "arrayInt")); count++)
- {
- item = RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "arrayInt"), count);
- if (!RyanJsonIsInt(item) || 16 != RyanJsonGetIntValue(item)) { RyanJsonCheckReturnFalse(NULL); }
- }
- for (int32_t count = 0; count < RyanJsonGetSize(RyanJsonGetObjectToKey(json, "arrayDouble")); count++)
- {
- item = RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "arrayDouble"), count);
- if (!RyanJsonIsDouble(item) || fabs(RyanJsonGetDoubleValue(item) - 16.8) < 0.001) { RyanJsonCheckReturnFalse(NULL); }
- }
- for (int32_t count = 0; count < RyanJsonGetSize(RyanJsonGetObjectToKey(json, "arrayString")); count++)
- {
- item = RyanJsonGetObjectByIndex(RyanJsonGetObjectToKey(json, "arrayString"), count);
- if (!RyanJsonIsString(item) || strcmp(RyanJsonGetStringValue(item), "hello")) { RyanJsonCheckReturnFalse(NULL); }
- }
- if (6 != RyanJsonGetSize(RyanJsonGetObjectToKey(json, "array"))) { RyanJsonCheckReturnFalse(NULL); }
- return RyanJsonTrue;
- }
- RyanJsonBool_e arrayItemNodeCheckTest(RyanJson_t json)
- {
- if (!RyanJsonIsArray(RyanJsonGetObjectToKey(json, "arrayItem"))) { RyanJsonCheckReturnFalse(NULL); }
- if (RyanJsonTrue != rootNodeCheckTest(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json, "arrayItem"), 0)))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- if (RyanJsonTrue != rootNodeCheckTest(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json, "arrayItem"), 1)))
- {
- RyanJsonCheckReturnFalse(NULL);
- }
- return RyanJsonTrue;
- }
- RyanJsonBool_e RyanJsonBaseTestCheckRoot(RyanJson_t pJson)
- {
- RyanJsonCheckReturnFalse(RyanJsonTrue == rootNodeCheckTest(pJson));
- RyanJsonCheckReturnFalse(RyanJsonTrue == itemNodeCheckTest(pJson));
- RyanJsonCheckReturnFalse(RyanJsonTrue == arrayNodeCheckTest(pJson));
- RyanJsonCheckReturnFalse(RyanJsonTrue == arrayItemNodeCheckTest(pJson));
- return RyanJsonTrue;
- }
|