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

标签 java json parsing gson

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

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

由于主机本身就是一个 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 吗?

最佳答案

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

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

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

关于java - 如何使用GSON从json字符串中提取json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821145/

相关文章:

java - 无法从队列创建热流

java - 为什么 hibernate 使用率下降?去哪儿?

java - Material 设计与安卓工作室

java - 从json字符串反序列化为对象时如何忽略null?

javascript - 使用 JSON 对象问题

java - hibernate 忽略 LEFT JOIN

javascript - Highcharts ,类型错误: obj is null

ios - Swift 将 TableView 单元格中的数据传递给 View Controller

c - token 表;从 main.c 中的表获取信息?

Scala:我可以将组合器解析器微调为本地贪婪吗?