-
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