data class MyStateObject(val name: String="", val age: Int=-1)
val jsonMapper = jacksonObjectMapper()
val xmlMapper = XmlMapper()
val myStateObject = MyStateObject("Sheldon", 30)
val json = jsonMapper.writeValueAsString(myStateObject)
val xml = xmlMapper.writeValueAsString(myStateObject)
{"name":"Sheldon","age":30}
<MyStateObject><name>Sheldon</name><age>30</age></MyStateObject>
val newJson = json.replace("30", "35")
val newXml = xml.replace("30", "35")
val newJsonObject = jsonMapper.readValue<MyStateObject>(newJson)
val newXmlObject = xmlMapper.readValue<MyStateObject>(newXml)
MyStateObject(name=Sheldon, age=35)
MyStateObject(name=Sheldon, age=35)
val errorNoField = jsonMapper.readValue<MyStateObject>(
"{\"name\":\"Sheldon\"}")
MyStateObject(name=Sheldon, age=0)
val errorWrongField = jsonMapper.readValue<MyStateObject>(
"{\"surname\":\"Sheldon\",\"age\":35}")
Exception in thread “main” com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “surname” (class MyStateObject), not marked as ignorable (2 known properties: “name”, “age”])
@JsonPropertyOrder(value = ["age", "surname"])
data class MyStateObject(
@JsonProperty("surname") val name: String="",
val age: Int=-1
)
val json = jsonMapper.writeValueAsString(myStateObject)
val newJson = json.replace("30", "35")
val newJsonObject = jsonMapper.readValue<MyStateObject>(newJson)
{"age":30,"surname":"Sheldon"}
{"age":35,"surname":"Sheldon"}
MyStateObject(name=Sheldon, age=35)