如何使用GSON从json字符串中提取json?

时间:2014-04-02 19:26:58

标签: java json parsing gson

下面是我的JSON字符串。我试图从中提取hosts

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

由于hosts本身就是一个JSON字符串,我想从中提取该JSON字符串。我在这里使用GSON -

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

我试图使用Map进行反序列化,但结果会在数据中出现 -

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

有什么办法,我可以用JSON格式提取hosts吗?

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的方法是使用gson从你的地图中创建一个json元素树,并要求它只为你提供主机节点:

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

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