Jackson deserialize GeoJson Point in Spring Boot

前端 未结 3 1831
日久生厌
日久生厌 2020-12-18 06:27

I have a @Entity model that has a property of type com.vividsolutions.jts.geom.Point. When I try to render this model in a @RestController

3条回答
  •  鱼传尺愫
    2020-12-18 07:02

    Maybe you should tag your geometric attribute with @JsonSerialize and @JsonDeserialize. Like this:

    import com.bedatadriven.jackson.datatype.jts.serialization.GeometryDeserializer;
    import com.bedatadriven.jackson.datatype.jts.serialization.GeometrySerializer;
    import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
    import com.fasterxml.jackson.databind.annotation.JsonSerialize;
    import com.vividsolutions.jts.geom.Geometry;
    import fr.info.groloc.entity.json.GreffeDeserializer;
    
    import javax.persistence.Entity;
    
    @Entity
    public class Table
    {
        @JsonSerialize(using = GeometrySerializer.class)
        @JsonDeserialize(contentUsing = GeometryDeserializer.class)
        private Geometry coord;
        // ...
    }
    

    If you are using Spring-Boot you only need for:

    import com.bedatadriven.jackson.datatype.jts.JtsModule;
    // ...
    @Bean
    public JtsModule jtsModule()
    {
        return new JtsModule();
    }
    

    As Dave said you need to add this dependency to your pom.xml:

    
        com.bedatadriven
        jackson-datatype-jts
        2.4
    
    

提交回复
热议问题