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 № 1No estoy seguro de qué es JackMapper, pero si se permiten otras bibliotecas, mis favoritos personales serían:
val jsonString = """{"id":"111","name":"abc","ids":["740"],"data":"abc"}"""
val json = Json.parse(jsonString).as[JsObject]
val newJson = json - "ids"
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.