[ https://issues.apache.org/jira/browse/JOHNZON-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Blevins updated JOHNZON-415: ---------------------------------- Description: Attempting deserialize class Email as follows {code:java} final String json = "[\"test\",\"domain.com\"]"; final Email email = jsonb.fromJson(json, Email.class);{code} fails if the adapter is declared on the Email class {code:java} @JsonbTypeAdapter(Adapter.EmailClass.class) public static class Email { final String user; final String domain; //... {code} and adapter code {code:java} public static class EmailClass implements JsonbAdapter<Email, String[]> { @Override public String[] adaptToJson(final Email obj) { return new String[]{obj.user, obj.domain}; } @Override public Email adaptFromJson(final String[] parts) { return new Email(parts[0], parts[1]); } {code} This will work on a write operation. This will work on a read and write in any order if Email is a field inside another class. was: Attempting deserialize class Email as follows {code:java} final String json = "[\"test\",\"domain.com\"]"; final Email email = jsonb.fromJson(json, Email.class);{code} fails if the adapter is declared on the Email class {code:java} @JsonbTypeAdapter(Adapter.EmailClass.class) public static class Email { final String user; final String domain; {code} {color:#910091}//...{color} and adapter code {code:java} public static class EmailClass implements JsonbAdapter<Email, String[]> { @Override public String[] adaptToJson(final Email obj) { return new String[]{obj.user, obj.domain}; } @Override public Email adaptFromJson(final String[] parts) { return new Email(parts[0], parts[1]); } {code} This will work on a write operation. This will work on a read and write in any order if Email is a field inside another class. > Reads fail with Array JsonbTypeAdapter on deserialized class > ------------------------------------------------------------ > > Key: JOHNZON-415 > URL: https://issues.apache.org/jira/browse/JOHNZON-415 > Project: Johnzon > Issue Type: Bug > Components: JSON-B > Affects Versions: 2.0.1 > Reporter: David Blevins > Priority: Major > > Attempting deserialize class Email as follows > > {code:java} > final String json = "[\"test\",\"domain.com\"]"; > final Email email = jsonb.fromJson(json, Email.class);{code} > fails if the adapter is declared on the Email class > {code:java} > @JsonbTypeAdapter(Adapter.EmailClass.class) > public static class Email { > final String user; > final String domain; > //... {code} > and adapter code > {code:java} > public static class EmailClass implements JsonbAdapter<Email, String[]> { > @Override > public String[] adaptToJson(final Email obj) { > return new String[]{obj.user, obj.domain}; > } > @Override > public Email adaptFromJson(final String[] parts) { > return new Email(parts[0], parts[1]); > } > {code} > This will work on a write operation. This will work on a read and write in > any order if Email is a field inside another class. -- This message was sent by Atlassian Jira (v8.20.10#820010)