Here is my code:

```java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TestJackson {

    static interface Entity {
        String getName();
    }

    @Test
    public void test() throws JsonProcessingException {

        String json = "{\"name\": \"good\"}";

        ObjectMapper objectMapper = new ObjectMapper();
        Entity entity = objectMapper.readValue(json, Entity.class);
//        Entity entity = objectMapper.readValue(json, new 
TypeReference<Entity>(){});

        System.out.println("name: " + entity.getName());
    }
}
```
Get exception:
```java
Exception in thread "main" 
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot 
construct instance of `io.gitlab.donespeak.turtal.TestJackson$Entity` (no 
Creators, like default construct, exist): abstract types either need to be 
mapped to concrete types, have custom deserializer, or contain additional 
type information
 at [Source: (String)"{"name": "good"}"; line: 1, column: 1]
    at 
com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
    at 
com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1589)
    at 
com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1055)
    at 
com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserialize(AbstractDeserializer.java:265)
    at 
com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
    at 
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3205)
    at 
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3173)
    at io.gitlab.donespeak.turtal.TestJackson.test(TestJackson.java:23)
    at io.gitlab.donespeak.turtal.TestJackson.main(TestJackson.java:10)

Process finished with exit code 1
```

I think dynamic proxy could be a solution for deserializing json to a 
interface.

-- 
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/9776d0ca-bd05-4d6b-98fe-711012e3703fn%40googlegroups.com.

Reply via email to