GSON / Джексон в Android

Мне удалось успешно разобрать нижнюю строку JSON на Android с помощью JSONObject и JSONArray. Не удалось добиться такого же результата с помощью GSON или Jackson. Может ли кто-нибудь помочь мне с фрагментами кода, включая определения POJO, для анализа этого с помощью GSON и 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", } } 

Ниже приведены простые примеры использования Gson и Jackson для десериализации / сериализации JSON (аналогично недействительному JSON в исходном вопросе) в / из соответствующей структуры данных Java.

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" } } 

Соответствующая структура данных Java:

 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; } 

Пример Джексона:

 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:

 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)); } }