On Wed, 19 Aug 2026 20:29:55 GMT, Naoto Sato <[email protected]> wrote:

>> This PR implements [JEP 540: Simple JSON API 
>> (Incubator)](https://openjdk.org/jeps/540).
>> 
>> It adds the `jdk.incubator.json` module which provides APIs for reading and 
>> writing JSON documents as specified by [RFC 
>> 8259](https://datatracker.ietf.org/doc/html/rfc8259). This is an incubating 
>> API.
>> 
>> API documentation: 
>> https://cr.openjdk.org/~naoto/json/javadoc/api/jdk.incubator.json/module-summary.html
>> Co-authored-by: Justin Lu 
>> ([@justin-curtis-lu](https://github.com/justin-curtis-lu))
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Naoto Sato has updated the pull request incrementally with four additional 
> commits since the last revision:
> 
>  - Merge remote-tracking branch 'jdk-sandbox/json' into 
> JDK-8381976-Implementation-for-Simple-JSON-API
>  - Use %04X format for invalid hex digit error message
>  - Update outdated comment in toPath
>  - Renamed `JsonValueImpl` to `JsonValueSupport`

src/jdk.incubator.json/share/classes/jdk/incubator/json/impl/JsonParser.java 
line 397:

> 395:                         case 'A', 'B', 'C', 'D', 'E', 'F' -> c - 'A' + 
> 10;
> 396:                         default -> throw failure(
> 397:                                 "Invalid Unicode escape sequence. 
> '\\u%04X' is not a hex digit".formatted((int)c),

Maybe retain `%c` for ASCII printable characters?

Something like:

private static String formatChar(char c) {
        if (c > 0x20 && c < 0x7F) {
                return Character.toString(c);
        }

        return String.format(Locale.ROOT, "\\u%04X", (int) c);
}


Which would then be used as:

"Invalid Unicode escape sequence. '" + formatChar(c) + "' is not a hex digit"

or

"Invalid Unicode escape sequence. '%s' is not a hex 
digit".formatted(formatChar(c))

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/32282#discussion_r3831573094

Reply via email to