json-read-from-string doesn't parse strings correctly if the the \u
syntax is used to write UTF-16 surrogates:
(equal (json-read-from-string "\"\\uD834\\uDD1E\"") "\"\U0001D11E\"")
=> nil
The correct result t. To quote RFC 7159[*]:
To escape an extended character that is not in the Basic Multilingual
Plane, the character is represented as a 12-character sequence,
encoding the UTF-16 surrogate pair. So, for example, a string
containing only the G clef character (U+1D11E) may be represented as
"\uD834\uDD1E".
[*] https://tools.ietf.org/html/rfc7159#section-7
Thanks for reporting, I've attached a patch.