0
ServerはJsonViewと空のJSONを返す:JsonView春+ Kotlinは
[ { }, { } ]
私はjackson
を設定するだけJackson2ObjectMapperBuilder
Beanを使用します。
@Bean
open fun objectMapperBuilder() = Jackson2ObjectMapperBuilder()
.modulesToInstall(KotlinModule())
.propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)
.featuresToEnable(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS)
コントローラー:
@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
}
ドライバーテーブルのエンティティ:
@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 = ""
)
ビューオブジェクト:
object Views {
interface Public {}
}
依存関係のリストを:私の場合には正しくJsonView
を設定する方法
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}"
?私は何かを忘れているかもしれない?私は次の依存関係を追加するまで、私は同じ問題に実行していた
わからないが、これは助けることができますが、私はJsonViewクラスを使用していることが多い参照、代わりのインタフェースです。 'class SampleView'を作成して使用してください。多分それが助けになるでしょう。 – IRus
私は試しました。同じ問題 –
'data class'をjavaで書かれたクラスに置き換えようとすると、データクラスのプロパティのアノテーションに問題があると思います。 – IRus