/ / Cortar el campo de la cadena JSON - json, scala

Cortar el campo de la cadena JSON - json, scala

Tengo una cadena JSON como esta:

{"id":"111","name":"abc","ids":["740"],"data":"abc"}

Quiero cortar el campo "ids"Sin embargo, no sé a priori los valores como ["740"]. Por lo tanto, podría ser, por ejemplo, ["888,222"] o lo que sea. El objetivo es conseguir la cadena json sin el campo. "ids".

¿Cómo hacerlo? Debo usar JackMapper?

EDITAR:

Intenté usar JackMapper como JacksMapper.readValue[Map[String, String]](jsonString)to get only fields that I need. But the problem is that"IDs":["740"] `arroja el error de análisis porque es una matriz. Entonces, decidí cortar este campo antes de analizar, aunque es una solución fea e idealmente solo quiero analizar la cadena json en el Mapa.

Respuestas

2 para la respuesta № 1

No estoy seguro de qué es JackMapper, pero si se permiten otras bibliotecas, mis favoritos personales serían:

Play-JSON:

val jsonString = """{"id":"111","name":"abc","ids":["740"],"data":"abc"}"""
val json = Json.parse(jsonString).as[JsObject]
val newJson = json - "ids"

Circe:

import io.circe.parser._

val jsonString = """{"id":"111","name":"abc","ids":["740"],"data":"abc"}"""
val json = parse(jsonString).right.get.asObject.get // not handling errors
val newJson = json.remove("ids")

Tenga en cuenta que este es el ejemplo mínimo para comenzar, que no controla la entrada incorrecta, etc.