¿Cuál es la mejor manera de convertir un código JSON como este:
{
"data" :
{
"field1" : "value1",
"field2" : "value2"
}
}
en un mapa de Java en el que las claves son (campo1, campo2) y los valores para esos campos son (valor1, valor2).
¿Algunas ideas? ¿Debo usar Json-lib para eso? ¿O mejor si escribo mi propio analizador?
java
json
parsing
collections
David Santamaria
fuente
fuente
Respuestas:
Espero que estuvieras bromeando sobre escribir tu propio analizador. :-)
Para un mapeo tan simple, la mayoría de las herramientas de http://json.org (sección java) funcionarían. Para uno de ellos (Jackson https://github.com/FasterXML/jackson-databind/#5-minute-tutorial-streaming-parser-generator ), haría:
(donde JSON_SOURCE es un archivo, secuencia de entrada, lector o cadena de contenido json)
fuente
Map<String,Object> result = mapper.readValue(source, Map.class)
.Usando la biblioteca GSON:
Utiliza el siguiente código:
fuente
TypeToken<Map<String, Map>>
:-)Me gusta la biblioteca de google gson .
Cuando no conoces la estructura de json. Puedes usar
y luego puedes trabajar con json. por ejemplo, cómo obtener "valor1" de su gson:
fuente
Utilice JSON lib Ej. Http://www.json.org/java/
fuente
Mi publicación podría ser útil para otros, así que imagina que tienes un mapa con un objeto específico en valores, algo así:
Para analizar este archivo JSON con la biblioteca GSON, es fácil: si su proyecto está mavenizado
Luego usa este fragmento:
El POJO correspondiente debería ser algo así:
Espero eso ayude !
fuente
De esta manera funciona como un mapa ...
fuente
JsonMap implements Map<String,Object
para envolver JSONObject. entonces obtienes la verdaderaMap
interfaz.Lo hago de esta manera. Es sencillo.
fuente
fuente
La biblioteca JsonTools es muy completa. Se puede encontrar en Github .
fuente
Con Google Gson 2.7 (probablemente también versiones anteriores, pero probé 2.7) es tan simple como:
Que devuelve un Mapa de tipo
class com.google.gson.internal.LinkedTreeMap
y funciona de forma recursiva en objetos anidados.fuente
Una alternativa más es json-simple que se puede encontrar en Maven Central :
El artefacto es de 24kbytes, no tiene otras dependencias de tiempo de ejecución.
fuente
null
de vuelta desde una simple cadena JSON donde uno de los valores es una matriz de cadenas.Si está utilizando org.json, JSONObject tiene un método
toMap()
. Puedes hacer fácilmente:fuente
fuente
Underscore-java biblioteca puede convertir la cadena json en un mapa hash. Soy el mantenedor del proyecto.
Ejemplo de código:
fuente
Si necesita Java puro sin dependencias, puede usar la compilación en la API de Nashorn desde Java 8. Está en desuso en Java 11.
Esto es trabajo para mí:
Uso de la muestra
JSON
Código:
fuente
Prueba este código:
fuente
JSON to Map siempre será un tipo de datos de cadena / objeto. Tengo GSON lib de google.
funciona muy bien y JDK 1.5 es el requisito mínimo.
fuente