GSON / Jackson en Android
Fui capaz de analizar con éxito la siguiente cadena de JSON en Android usando JSONObject y JSONArray. No han tenido éxito al lograr el mismo resultado con GSON o Jackson. ¿Puede alguien ayudarme con fragmentos de código incluyendo las definiciones POJO para analizar esto con GSON y Jackson?
{ "response":{ "status":200 }, "items":[ { "item":{ "body":"Computing" "subject":"Math" "attachment":false, } }, { "item":{ "body":"Analytics" "subject":"Quant" "attachment":true, } }, ], "score":10, "thesis":{ "submitted":false, "title":"Masters" "field":"Sciences", } }
- Cómo obtener respuesta como String utilizando retrofit sin utilizar GSON o cualquier otra biblioteca en android
- No conseguir el pulgar con géneros - jugador de música universal
- Cómo convertir una cadena en unicode en android
- Cargando muchas imágenes del servidor en Android
- Deserializar un objeto JSON con múltiples elementos dentro de él
- Cómo utilizar parámetros con HttpPost
- Funcionalidad de búsqueda de Android utilizando listview desde el archivo JSON (Hard)
- Android volley JsonObjectRequest que no devuelve ningún cuerpo sólo 200
- JSON Parsing problema con Spinners
- Gson Array de deserialización de matrices
- Mapa Ver instrucciones de dibujo usando google Directions API - decodificar polilíneas
- Conexión de Android a localhost
- El método más simple para convertir Json a Xml
Los siguientes son ejemplos simples de usar Gson y Jackson para deserializar / serializar JSON (similar al inválido JSON en la pregunta original) a / desde una estructura de datos Java correspondiente.
El JSON:
{ "response": { "status": 200 }, "items": [ { "item": { "body": "Computing", "subject": "Math", "attachment": false } }, { "item": { "body": "Analytics", "subject": "Quant", "attachment": true } } ], "score": 10, "thesis": { "submitted": false, "title": "Masters", "field": "Sciences" } }
La estructura de datos de Java coincidente:
class Thing { Response response; ItemWrapper[] items; int score; Thesis thesis; } class Response { int status; } class ItemWrapper { Item item; } class Item { String body; String subject; boolean attachment; } class Thesis { boolean submitted; String title; String field; }
Jackson Ejemplo:
import java.io.File; import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility; import org.codehaus.jackson.map.ObjectMapper; public class JacksonFoo { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); mapper.setVisibilityChecker( mapper.getVisibilityChecker() .withFieldVisibility(Visibility.ANY)); Thing thing = mapper.readValue(new File("input.json"), Thing.class); System.out.println(mapper.writeValueAsString(thing)); } }
Gson Ejemplo:
import java.io.FileReader; import com.google.gson.Gson; public class GsonFoo { public static void main(String[] args) throws Exception { Gson gson = new Gson(); Thing thing = gson.fromJson(new FileReader("input.json"), Thing.class); System.out.println(gson.toJson(thing)); } }
- Llamar siguiente () dos veces en Iterator lanza una excepción NoSuchElementException
- ListView onItemClick no funciona en la actividad