【发布时间】:2018-06-09 17:19:00
【问题描述】:
我有这个json字符串
{
"team": "xyz",
"patern": "abc",
"service": "{\"version\":0,\"name\":\"some_service_name\"}",
"op": "{\"version\":0,\"name\":\"some_op_name\"}",
.
.
.
}
并且想将其转换为 JsonObject,因为它内部有一个 json 字符串,所以我必须拉出 JsonElement 然后使用它。问题是 JsonElement“服务”和“操作”是字符串
我希望 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 类的情况下摆脱它。
【问题讨论】:
-
您的问题到底是什么?您对我们有什么期望?您需要解析服务和操作字符串,就像解析外部 JSON 字符串一样。你如何做到这一点并不重要。或者您需要退后一步,想知道为什么将 jsn 字符串作为 json 文档的值,然后重新设计系统。
-
为此使用 GSON 转换。
-
看看
jackson -
@JBNizet - 我使用的终端系统无法更改,它们在 json 文档中具有 json 字符串作为值。我必须进行处理才能获得所需的字段。我需要帮助来解析这些 json 字符串或将整个 json 字符串转换为标准 json(没有 json 字符串)
-
@SagarNayak - 我知道我可以添加一个 java 类并映射所有字段并且该解决方案有效,但我想要更简单的解决方案,我不需要创建额外的类。
标签: java json parsing gson jolt