qson
qson copied to clipboard
java.lang.ClassCastException: class java.util.HashSet cannot be cast to class
error message
Exception in thread "main" java.lang.ClassCastException: class java.util.HashSet cannot be cast to class org.example.jsonbenchmarks.User (java.util.HashSet is in module java.base of loader 'bootstrap'; org.example.jsonbenchmarks.User is in unnamed module of loader 'app')
at org.example.jsonbenchmarks.User__Parser.genderEnd(User__Parser.zig:267)
at org.example.jsonbenchmarks.User__Parser.key(User__Parser.zig:635)
at io.quarkus.qson.parser.BaseParser.nextKeys(BaseParser.java:528)
code
var mapper = new QsonMapper();
var user = mapper.read(json, User.class);
json
{
"id": -5106534569952410475,
"firstName": "eOMtThyhVNLWUZNRcBaQKxI",
"lastName": "yedUsFwdkelQbxeTeQOvaScfqIOOmaa",
"age": -1188957731,
"gender": "UNKNOWN",
"friends": [{
"id": -167885730524958550,
"firstName": "JxkyvRnL",
"lastName": "RYtGKbgicZaHCBRQDSx",
"age": 1018954901,
"gender": "UNKNOWN",
"friends": [{
"id": 4672433029010564658,
"firstName": "VLhpfQGTMDYpsBZxvfBoeygjb",
"lastName": "UMaAIKKIkknjWEXJUfPxxQHeWKEJ",
"age": -39088943,
"gender": "UNKNOWN",
"friends": [{
"id": null,
"firstName": null,
"lastName": null,
"age": null,
"gender": null,
"friends": null,
"attrs": null
}, {
"id": null,
"firstName": null,
"lastName": null,
"age": null,
"gender": null,
"friends": null,
"attrs": null
}],
"attrs": {
"dpHYZGhtgdntugzvvKAXLhM": "LlN",
"gNfZBdyFGRajVfJNonEnOinZj": "UfzQhdgLLfDTDGspDb",
"QvBQYuxiXXVytGCxzVllpgTJKhRQq": "qszYL"
}
}],
"attrs": {
"Oxm": "QIn",
"YdvDhtAsLghPXAgtbprXPZkhnfLTBSX": "sPB",
"yIvpRgmgQsYEKk": "AAAryjCRhLTuhnTodUewZQqaZErU"
}
}],
"attrs": {
"aofGvthLoyPLDADYzx": "WoaMAzEEplqjJ",
"jNBgpTmxx": "pIoQM",
"ODRhfGEfX": "IoTtOmcBeivNUYv"
}
}
User.java
public class User {
private Long id;
private String firstName;
private String lastName;
private Integer age;
private Gender gender;
private Set<User> friends;
private Map<String, String> attrs;
public User() {
}
public User(Long id,
String firstName,
String lastName,
Integer age,
Gender gender,
Set<User> friends,
Map<String, String> attrs) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.gender = gender;
this.friends = friends;
this.attrs = attrs;
}
public enum Gender {
MALE, FEMALE, UNKNOWN
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", age=" + age +
", gender=" + gender +
", friends=" + friends +
", attrs=" + attrs +
'}';
}
// getter and setter ...
}