/ / ¿Cómo extraer json de una cadena json usando GSON? - java, json, parsing, gson

¿Cómo extraer json de una cadena json usando GSON? - java, json, parsing, gson

A continuación se muestra mi cadena JSON. Estoy tratando de extraer hosts de eso.

{"description":"DescA","process_running":"sf","hosts":{"dc1":["machineA","machineB"]}}

Dado que hosts es una cadena JSON en sí misma y me gustaría extraer esa cadena JSON. Estoy usando GSON aquí -

String ss = new String(bytes, Charset.forName("utf-8"));

// here ss is the above JSON String

Map<String, Object> data = gson.fromJson(ss, Map.class); // parse

Estaba tratando de usar Map Deserializar pero el resultado viene así en los datos.

{description=DescA, process_running=sf, hosts={dc1=[machineA, machineB]}}

¿Hay alguna manera, puedo extraer hosts en el formato json?

Respuestas

1 para la respuesta № 1

La forma más fácil que se me ocurra para hacer esto sería usar gson para crear un árbol de elementos json desde su mapa, y pedirle que le proporcione solo el nodo de hosts:

    Map<String, Object> data = gson.fromJson(ss, Map.class); // parse

JsonObject jsonTree = (JsonObject) gson.toJsonTree(data);
String hostsJson = jsonTree.get("hosts").toString();