Server returns such part of JSON:
{\"condition\": {
\"or\": [
{
\"and\": [
{
\"operand\": \"a\",
You should use a class, not an interface. Otherwise, Jackson cannot create an instance.
I believe you also need to create default (aka no-arg) constructors for your POJOs for Jackson to work.
Also, a good general approach for creating a Jackson mapping is to instantiate a Java instance of your classes and then create the JSON from that, Java -> JSON. This makes it much easier to understand how the mapping is different - going from JSON -> Java is harder to debug.