| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- #include "RyanJsonBaseTest.h"
- /* --------------------------------------------------------------------- */
- RyanJsonBool_e RyanJsonBaseTestLoadJson()
- {
- char *str = NULL;
- RyanJson_t json;
- char jsonstr[] = "{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,\"item\":"
- "{\"inter\":16,\"double\":16."
- "89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16.89,"
- "16.89,16.89,16.89],"
- "\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,\"string\":"
- "\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null}]}";
- json = RyanJsonParse(jsonstr);
- RyanJsonCheckReturnFlase(NULL != json);
- str = RyanJsonPrint(json, 250, RyanJsonFalse, NULL);
- RyanJsonCheckCode(0 == strcmp(str, jsonstr), {
- RyanJsonFree(str);
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- RyanJsonFree(str);
- RyanJsonCheckCode(RyanJsonTrue != RyanJsonBaseTestCheckRoot(json), {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- RyanJsonDelete(json);
- /**
- * @brief 测试序列化错误json结构
- *
- */
- // \"inter\":16poi, 无效数字
- json = RyanJsonParse("{\"inter\":16poi,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":"
- "16,\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"double\":16.8yu9,, 无效浮点数
- json = RyanJsonParse("{\"inter\":16,\"double\":16.8yu9,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // boolTrue 设置为 tru
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":tru,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // boolFalse 设置为 fale
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":fale,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // null 设置为 nul
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":nul,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // null 设置为 NULL
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":NULL,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"inter\":16后面少个,
- json = RyanJsonParse("{\"inter\":16\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // array数组项少一个,
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"item:{\"inter\":16,\" 少一个"
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item:{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"item\":{\"inter\":16,double\" 少一个"
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"item\":{\"inter\":16,\"\"double\" 多一个"
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"item\":{\"inter\":16\",\"double\" 多一个"
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16\","
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16,16,16],\"arrayDouble\":[16.89,16."
- "89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- // \"arrayInt\":[16,16,16m,16,16] 无效数组数字
- json = RyanJsonParse("{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,\"boolFalse\":false,\"null\":null,"
- "\"item\":{\"inter\":16,"
- "\"double\":16.89,\"string\":\"hello\","
- "\"boolTrue\":true,\"boolFalse\":false,\"null\":null},\"arrayInt\":[16,16,16m,16,16],\"arrayDouble\":[16.89,"
- "16.89,16.89,16.89,16."
- "89],\"arrayString\":[\"hello\",\"hello\","
- "\"hello\",\"hello\",\"hello\"],\"array\":[16,16.89,\"hello\",true,false,null],\"arrayItem\":[{\"inter\":16,"
- "\"double\":16.89,"
- "\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,\"null\":null},{\"inter\":16,\"double\":16.89,\"string\":\"hello\",\"boolTrue\":true,"
- "\"boolFalse\":false,"
- "\"null\":null}]}");
- RyanJsonCheckCode(NULL == json, {
- RyanJsonDelete(json);
- return RyanJsonFalse;
- });
- return RyanJsonTrue;
- }
|