- Notifications
You must be signed in to change notification settings - Fork 7
Closed
Description
avaje-jsonb version 3.8
import io.avaje.jsonb.Json; import io.avaje.jsonb.Jsonb; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.text.MessageFormat; import java.util.Map; public class TestNestedGeneric { @Json @Data @AllArgsConstructor @NoArgsConstructor public static class TestMapMap { private Map<String, Map<String, Entity>> dims; @Json @Data @AllArgsConstructor @NoArgsConstructor public static class Entity { private String name; private String value; } } public static void main(String[] args) { var res = new TestMapMap(Map.of("test", Map.of("123", new TestMapMap.Entity("name", "value")))); var jsonb = Jsonb.builder().build(); var p = jsonb.type(TestMapMap.class).toJson(res); System.out.println(p); jsonb.type(TestMapMap.class).fromJson(p).getDims().forEach((k,v)->v.forEach((k2,v2)-> System.out.println(MessageFormat.format("key:{0}, k {1},value:{2}", k,k2, v2)))); } }Reuslt
Serializer
Success
Deserializer
Failed
{"dims":{"test":{"123":{"name":"name","value":"value"}}}} Exception in thread "main" java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class com.winhc.bigdata.flink.jobs.slideoutput.dynamic.TestNestedGeneric$TestMapMap$Entity (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; com.winhc.bigdata.flink.jobs.slideoutput.dynamic.TestNestedGeneric$TestMapMap$Entity is in unnamed module of loader 'app') at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) at com.winhc.bigdata.flink.jobs.slideoutput.dynamic.TestNestedGeneric.lambda$main$1(TestNestedGeneric.java:35) at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) at com.winhc.bigdata.flink.jobs.slideoutput.dynamic.TestNestedGeneric.main(TestNestedGeneric.java:35) Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working