Hi Tatu!

I need to serialize/deserialize untyped collections, and I get issue when 
deserialing. I push failing unit test in my repository: 
https://github.com/alex-t0/deserialization-fail-example/blob/master/src/test/java/deserialization/fail/example/DeserializationFromUntypedCollectionsTest.java.

In this test I have simple User class and dummy UserContainer class, that 
has one User property. Next, I create an array of 2 elements: user and 
userContainer with reference to same user.

When first element of array is user, and second is container - 
deserialization works fine. I get this serialized string:

[
    "java.util.ArrayList",
    [
        [
            "deserialization.fail.example.User",
            {
                "id": 42,
                "login": "cool_man"
            }
        ],
        [
            "deserialization.fail.example.UserContainer",
            {
                "user": 42
            }
        ]
    ]
]

Because jackson knows what is 42 here.

But if I put userContainer at first place in my array, and user at second 
place, serialized data would be

[
    "java.util.ArrayList",
    [
        [
            "deserialization.fail.example.UserContainer",
            {
                "user": [
                    "deserialization.fail.example.User",
                    {
                        "id": 42,
                        "login": "cool_man"
                    }
                ]
            }
        ],
        42
    ]
]

So, user serialized as id, but no type information saved about user. And 
when I deserialize this I get an array with Integer 42 at second place, not 
user.

How to serialize untyped collections properly?

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-user/b7c032a1-e5ca-4b91-b804-5316506eb7e3%40googlegroups.com.

Reply via email to