gpt4 book ai didi

java - 如何将 LinkedTreeMap 转换为 gson JsonObject

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:03 24 4
gpt4 key购买 nike

对于 java 数据处理程序,我发送格式正确的 JSON,但 Spring、Java 决定如何转换它看到的内容以及框架的组合我真的不应该去改变破坏 JSON,以便一旦我能看到它,它变成了 LinkedTreeMap,我需要将它转换成 JsonObject。这不是将 JSON 序列化/反序列化为 java 对象,它的“最终形式”是一个 gson JsonObject,它需要能够处理任何有效的 JSON。

{
"key":"value",
"object": {
"array":[
"value1",
"please work"
]
}
}

是我一直在使用的示例,一旦我看到它,它就是一个 .toString() 到

的 LinkedTreeMap
{key=value, object={array=[value1, please work]}}

您可以将“=”替换为“:”,但没有用于

的内部引号
new JsonParser().parse(gson.toJson(STRING)).getAsJsonObject()

策略。

有没有更直接的方法可以将 LinkedTreeMap 转换为 JsonObject,或者有一个库可以将内部引号添加到字符串中,甚至可以将字符串转换为不需要内部引号的 JsonObject?

最佳答案

您通常必须将对象序列化为 JSON,然后将该 JSON 解析回 JsonObject。幸运的是,Gson 提供了一个 toJsonTree那种跳过解析的方法。

LinkedTreeMap<?,?> yourMap = ...;
JsonObject jsonObject = gson.toJsonTree(yourMap).getAsJsonObject();

请注意,如果可以的话,只需将 JSON 直接反序列化为 JsonObject 即可

gson.fromJson(theJson, JsonObject.class);

关于java - 如何将 LinkedTreeMap 转换为 gson JsonObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38057172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com