2016-04-01 29 views
0

Sunucu JsonView ile boş json döndürür:JsonView Baharda + Kotlin

[ { }, { } ] 

Ben jackson yapılandırmak için sadece Jackson2ObjectMapperBuilder fasulye kullanın:

@Bean 
open fun objectMapperBuilder() = Jackson2ObjectMapperBuilder() 
    .modulesToInstall(KotlinModule()) 
    .propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES) 
    .featuresToEnable(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS) 

Denetleyici:

@RestController 
@RequestMapping("/api/drivers") 
class DriversController @Autowired constructor(val driverService: DriverService) { 

    @JsonView(Views.Public::class) 
    @RequestMapping("/nearest") 
    fun nearest(): List<Driver> { 
     val drivers = driverService.findNearest(49.437551, 32.025263) 

     return drivers 
    } 

sürücü tablo varlık:

@Entity 
@Table(name = "ct_drivers") 
data class Driver(

    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    var id: Int = 0, 

    @JsonView(Views.Public::class) 
    @Column(name = "first_name") 
    var firstName: String = "", 

    @JsonView(Views.Public::class) 
    @Column(name = "last_name") 
    var lastName: String = "", 

    @Column(name = "phone") 
    var phone: String = "" 

) 

Görüntüleme nesne:

object Views { 
    interface Public {} 
} 

Bağımlılıklar listesi:

compile 'org.springframework.boot:spring-boot-starter-web' 
compile 'org.springframework.boot:spring-boot-devtools' 
compile 'org.springframework.boot:spring-boot-starter-data-jpa' 
compile 'org.springframework.boot:spring-boot-starter-thymeleaf' 
compile 'org.springframework.security.oauth:spring-security-oauth2' 
compile 'org.springframework:spring-messaging' 
compile 'org.springframework:springloaded:1.2.5.RELEASE' 
compile 'org.springframework:spring-tx' 
compile 'org.springframework:spring-orm:4.2.5.RELEASE' 
compile 'org.hibernate:hibernate-core:5.1.0.Final' 
compile 'org.hibernate:hibernate-entitymanager:5.1.0.Final' 
compile 'org.hibernate:hibernate-spatial:5.1.0.Final' 
compile 'com.corundumstudio.socketio:netty-socketio:1.7.8' 
compile 'org.postgresql:postgresql:9.3-1101-jdbc41' 
compile 'com.github.salomonbrys.kotson:kotson:2.1.0' 
compile 'com.fasterxml.jackson.module:jackson-module-kotlin:2.7.3' 
compile 'org.apache.httpcomponents:httpcore:4.3.3' 
compile 'org.apache.httpcomponents:httpclient:4.3.3' 
compile "org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}" 

Nasıl benim durumumda doğru JsonView yapılandırmak için? Bir şeyi unutmuş olabilir miyim?

+0

emin değil bu yardımcı olabilir, ancak ben JsonView yerine arayüzleri, sınıflarını kullanır sıklıkla görüyoruz. Lütfen 'class SampleView' oluşturmaya çalışın ve kullanın. Belki yardımcı olur. – IRus

+0

Denedim. Aynı sorun java ile yazılmış sınıfla 'veri class' değiştirmeyi deneyin –

+0

i veri sınıfı özelliklerine ek açıklamalarla sorun olduğunu düşünüyorum. – IRus

cevap

0

aşağıdaki bağımlılık eklendi kadar aynı sorun haline koşuyordu:

compile 'com.fasterxml.jackson.module:jackson-module-kotlin'