java - 如何将json中的字符串转换为json对象

标签 java json parsing gson jolt

我有这个 json 字符串

{
  "team": "xyz",
  "patern": "abc",
  "service": "{\"version\":0,\"name\":\"some_service_name\"}",
  "op": "{\"version\":0,\"name\":\"some_op_name\"}",
  .
  .
  .
}

并且想将其转换为 JsonObject,因为它里面有一个 json 字符串,我必须拉出 JsonElement 然后使用它。问题是 JsonElement "service"和 "op"是 String

我希望 JsonObject 像这样转换

   {
      "team": "xyz",
      "patern": "abc",
      "service": {"version":0,"name":"some_service_name"},
      "op": {"version":0,"name":"some_op_name"},
      .
      .
      .
    }

我尝试过 new JsonParser().parse(string) 和 new Gson().fromJson(string, JsonObject.class) 但它无法解析。还尝试了 Jolt,但它将其解析为字符串。

我知道可以通过将其映射到 java 类然后使用它来解决这个问题,但我想知道是否有一种方法可以在不需要额外 java 类的情况下摆脱困境。

最佳答案

我还没有找到一种方法来做到这一点。使用 Gson 效果很好。我会做这样的事情。

Gson gson = new Gson();
Map res = gson.fromJson(string, Map.class);
Map service = gson.fromJson((String)res.get("service"), Map.class);
Map op = gson.fromJson((String)res.get("op"), Map.class);
res.put("service", service);
res.put("op", op);
String newString = gson.toJson(res);

关于java - 如何将json中的字符串转换为json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48019673/

相关文章:

java - 有关 Spring 转换器以及 Jaxb2RootElementHttpMessageConverter 如何在 Spring MVC 中工作的一些信息

java - Fastjson反序列化返回null

json - 当使用 Add-Member 将对象添加到子项时,如何正确地将 Powershell 对象保留为 JSON?

ruby - JSON Gem 不会安装 (Windows)

ruby - 将嵌套哈希转换为 Ruby 中以点分隔的字符串的一行代码?

node.js - 上传数据时暂停 Node csv-parser

java - WLST ant 任务未找到 classpathref

java - android中应用程序项目和内部数据库库之间的循环依赖

php - 传递数据 MySQL -> PHP -> JSON

python - 解析 HTSQL 时处理语法歧义