RapidJSON
A fast JSON parser/generator for C++ with both SAX/DOM style API
...By default it uses a fast memory allocator, and the parser allocates memory compactly during parsing. RapidJSON is Unicode-friendly. It supports UTF-8, UTF-16, UTF-32 (LE & BE), and their detection, validation and transcoding internally. For example, you can read a UTF-8 file and let RapidJSON transcode the JSON strings into UTF-16 in the DOM. It also supports surrogates and "\u0000" (null character).