#pragma semicolon 1 #include #include public OnPluginStart() { TestJsonDecode("{\"integer\": 1, \"string\": \"Hello World\", \"integer2\": 2}"); TestJsonDecode("{\"string\": \"Hello World\"}"); TestJsonDecode("{\"bool\": true}"); TestJsonDecode("{\"null\": null}"); new JSON:json = json_decode("{\"integer\": 1, \"string\": \"Hello World\", \"integer2\": 2, \"bool\": true}"); if(json == JSON_INVALID) { LogMessage("--> Failed"); } else { new bool:failed = false; LogMessage("Running self tests on data..."); decl String:str[20]; if(json_get_string(json, "string", str, sizeof(str)) && StrEqual(str, "Hello World")) { LogMessage("--> String: Passed"); } else { LogMessage("--> String: Failed"); } new bool:testBool = false; if(json_get_cell(json, "bool", testBool) && testBool) { LogMessage("--> Boolean: Passed"); } else { LogMessage("--> Boolean: Failed"); } new testInt1 = -1, testInt2 = -1; if(json_get_cell(json, "integer", testInt1) && testInt1 == 1 && json_get_cell(json, "integer2", testInt2) && testInt2 == 2) { LogMessage("--> Integer: Passed"); } else { LogMessage("--> Integer: Failed"); } LogMessage("--> Data tests %s", failed ? "Failed" : "Passed"); } } public TestJsonDecode(const String:sJSON[]) { LogMessage("Trying to decode: %s", sJSON); new JSON:hJson = json_decode(sJSON); if(hJson == JSON_INVALID) { LogMessage("--> Failed"); } else { LogMessage("--> Passed"); } }