FasterXML / FasterXML/jackson-module-scala
FIELD property accessor is overridden by GETTER property accessor
- Lenguaje dominante
- Scala
- Estrellas
- 506
- Forks
- 138
- Merge medio
- 3 h 6 min
- PR fusionados (30 d)
- 48
Descripción
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"
)
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.