qson icon indicating copy to clipboard operation
qson copied to clipboard

java.lang.ClassCastException: class java.util.HashSet cannot be cast to class

Open lost22git opened this issue 3 years ago • 0 comments

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 ...

}

lost22git avatar Oct 14 '22 12:10 lost22git