FasterXML / FasterXML/jackson-module-scala
FIELD property accessor is overridden by GETTER property accessor
- Langage dominant
- Scala
- Étoiles
- 506
- Forks
- 138
- Merge moyen
- 3 h 6 min
- PR mergées (30 j)
- 48
Description
Not sure exactly what's going on here. A public field gets serialized fine, until I set the visibility using `PropertyAccessor.GETTER`.
```
~/test ❯❯❯ cat src/main/scala/Test.scala
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule
import com.fasterxml.jackson.annotation.PropertyAccessor
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility
import java.io.StringWriter
object Test extends App {
val serializer = new ObjectMapper
serializer.registerModule(DefaultScalaModule)
//serializer.setVisibility(PropertyAccessor.GETTER, Visibility.NONE)
serializer.setVisibility(PropertyAccessor.FIELD, Visibility.PROTECTED_AND_PUBLIC)
val test = new Test
test.addString("a")
println(test.toJson)
}
class Test {
var entries = Seq[String]()
def addString(str: String) = {
entries = entries :+ str
}
def toJson(): String = {
val writer = new StringWriter
Test.serializer.writeValue(writer, this)
return writer.toString
}
}
```
produces `{"entries":["a"]}`, but uncommenting the `GETTER` line produces `{}`. Not sure if I'm missing something about the way `PropretyAccessor.GETTER` works, but this seems like a bug.
Here's my `build.sbt` as well, in case it's a version-specific problem:
```
~/test ❯❯❯ cat build.sbt
name := "Test"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.7.5"
)
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.