JUCE strings are all zero-terminated, so they can’t actually represent a string that contains a zero character. There’s no problem with the JSON parser, but we’d need to change the fundamental way that String works in order to make it possible to parse that particular piece of text.
Using strings that deliberately contain zeros is a bit of a weird design choice IMHO, and likely to run into problems in other libraries too. If you’re in control of the way the original JSON is generated, you should probably consider doing it differently.
It is a bit of a problem since JSON explicitly allows escaped null characters in strings, if only a problem with documentation (is there a “conformance” page somewhere in the docs?)
But it looks like OP is doing some tricks to put metadata inside a valid UTF string that isn’t seen when parsed as a C string.
Since string is defined as \0 terminated, it is reasonable, that juce::String will not represent that property correctly. What happens, if you read it using