| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- #include "RyanJsonBaseTest.h"
- /* --------------------------------------------------------------------- */
- RyanJsonBool_e RyanJsonBaseTestCompareJson(void)
- {
- 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}]}";
- RyanJson_t json = RyanJsonParse(jsonstr);
- RyanJson_t json2 = RyanJsonParse(jsonstr);
- // 比较函数
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompare(json, json), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddStringToObject(json2, "test", "hello");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddIntToObject(json2, "test", 1);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddDoubleToObject(json2, "test", 2.0);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddBoolToObject(json2, "test", RyanJsonTrue);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddNullToObject(json2, "test");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddIntToArray(RyanJsonGetObjectToKey(json2, "arrayInt"), 2);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddDoubleToArray(RyanJsonGetObjectToKey(json2, "arrayDouble"), 2.0);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddStringToArray(RyanJsonGetObjectToKey(json2, "arrayString"), "hello");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonAddItemToArray(RyanJsonGetObjectToKey(json2, "arrayItem"), RyanJsonCreateString("test", "hello"));
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeKey(RyanJsonGetObjectToKey(json2, "inter"), "int2");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeIntValue(RyanJsonGetObjectToKey(json2, "inter"), 17);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeDoubleValue(RyanJsonGetObjectToKey(json2, "double"), 20.89);
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- if (RyanJsonFalse != RyanJsonCompare(json, json2))
- {
- printf("%s:%d 解析失败\r\n", __FILE__, __LINE__);
- goto err;
- }
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonDelete(RyanJsonDetachByKey(json2, "double"));
- RyanJsonAddIntToObject(json2, "double", 20); // 改为int
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeStringValue(RyanJsonGetObjectToKey(json2, "string"), "49");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeBoolValue(RyanJsonGetObjectToKey(json2, "boolTrue"), RyanJsonFalse);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeBoolValue(RyanJsonGetObjectToKey(json2, "item", "boolTrue"), RyanJsonFalse);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeIntValue(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json2, "arrayInt"), 0), 17);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeDoubleValue(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json2, "arrayDouble"), 0), 20.89);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeStringValue(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json2, "arrayString"), 0), "20.89");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeIntValue(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json2, "array"), 0), 17);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonChangeIntValue(RyanJsonGetObjectToKey(RyanJsonGetObjectToIndex(RyanJsonGetObjectToKey(json2, "arrayItem"), 0), "inter"),
- 17);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonTrue == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonDeleteByKey(json2, "arrayItem");
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonDeleteByIndex(RyanJsonGetObjectToKey(json2, "arrayInt"), 2);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json2);
- json2 = RyanJsonParse(jsonstr);
- RyanJsonDeleteByIndex(RyanJsonGetObjectToKey(json2, "arrayItem"), 0);
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompare(json, json2), { goto err; });
- RyanJsonCheckCode(RyanJsonFalse == RyanJsonCompareOnlyKey(json, json2), { goto err; });
- RyanJsonDelete(json);
- RyanJsonDelete(json2);
- return RyanJsonTrue;
- err:
- RyanJsonDelete(json);
- RyanJsonDelete(json2);
- return RyanJsonFalse;
- }
|