2017-09-06 6 views
1

の問題私はスカラ - チェンジJSONキー

@JsonSerialize 
case class TimeTableIndexItem(@BeanProperty @JsonProperty("name") var name: String, 
           @BeanProperty @JsonProperty("type") var category: String) extends Serializable { 
    override def toString: String = { 
    s"$name $category" 
    } 
} 

このクラスをした私はそれがない理由を私は知らない「名前」に「カテゴリ」からJSONのキーの名前を変更したいですワーキング?私は、Javaを使用する場合には、同様の仕事でした(@JsonProperty)

答えて

0

build.sbtに

libraryDependencies += "com.fasterxml.jackson.module" % "jackson-module-scala_2.12" % "2.9.0" 

を追加します。この依存関係はSpringブートによって追加されません。

次のコードは動作します

import com.fasterxml.jackson.databind.ObjectMapper 
import com.fasterxml.jackson.module.scala.DefaultScalaModule 

val objectMapper = new ObjectMapper 
objectMapper.registerModule(DefaultScalaModule) 
val item = TimeTableIndexItem("name1", "category1") 
val s = objectMapper.writeValueAsString(item) 
println(s) 

{ "名前": "NAME1"、 "タイプ": "カテゴリ1"} answerに基づい


モジュールを登録していません。 Springブート構成を変更してください。

@Configuration 
@EnableAutoConfiguration 
@ComponentScan 
class SampleConfig { 
    @Bean 
    @Primary 
    def objectMapper(): ObjectMapper = { 
    val objectMapper = new ObjectMapper 
    objectMapper.registerModule(DefaultScalaModule) 
    objectMapper 
    } 
} 

answerに基づいています。

screenshot

+0

これは機能しません。私はprintln(それは仕事です)を使用するとき、私はコントローラのオブジェクトを返すときに、タイプの代わりにカテゴリを取得することを意味します。私はStringを返すことができますが、私はjsonを返す必要があります。基本的にTimeTableIndexItemのリスト。 – overmyhea

+0

@overmyhea コードを書くことができますか? –

+0

https://github.com/stoton/zsat-timetable-backendこれは私のコードです。あなたは何を話していますか。コントローラを見て – overmyhea

関連する問題