It doesn't look like this generates or parses string escapes correctly yet. That's important for default values.
I have a TODO in my tokenizer to handle string escapes fully. I planned to include the fix in subsequent patches; however, if you like, I can resubmit this patch with string escapes fully implemented. I'm currently working on the AVRO DOM code and planned to add JSON updates with that patch but I'll context switch if necessary. I submitted the JSON code to prevent submitting a jumbo patch.
The unit tests would be stronger if they didn't just parse but also printed the parsed value and compared it to the input.
If you look at line 95 of test_json_parser.c you'll see that the line
/* JSON_print (stderr, value); */
which pretty prints the JSON DOM. I found it too verbose during the unit test but it was helpful for debugging.
In the future, I plan to update the unit test to output the column and line of the syntax error. It would also be straight-forward to add a function for comparing JSON DOMs for equivalence but comparing text with text isn't as useful because of whitespace.