Add JSON_REJECT_DUPLICATES decoding flag

With this flag, a decoding error is issued if any JSON object in the
input contains duplicate keys.

Fixes GH-3.
This commit is contained in:
Petri Lehtinen
2011-05-15 13:57:48 +03:00
parent 92f6f0f22c
commit 49fc708d4c
4 changed files with 64 additions and 28 deletions

View File

@@ -9,7 +9,7 @@
#include <string.h>
#include "util.h"
int main()
static void file_not_found()
{
json_t *json;
json_error_t error;
@@ -21,6 +21,21 @@ int main()
fail("json_load_file returned an invalid line number");
if(strcmp(error.text, "unable to open /path/to/nonexistent/file.json: No such file or directory") != 0)
fail("json_load_file returned an invalid error message");
}
static void reject_duplicates()
{
json_error_t error;
if(json_loads("{\"foo\": 1, \"foo\": 2}", JSON_REJECT_DUPLICATES, &error))
fail("json_loads did not detect a duplicate key");
check_error("duplicate object key near '\"foo\"'", "<string>", 1, 16, 16);
}
int main()
{
file_not_found();
reject_duplicates();
return 0;
}