Java 如何将LinkedTreeMap转换为gson JsonObject

Java 如何将LinkedTreeMap转换为gson JsonObject,java,json,string,gson,jsonobject,Java,Json,String,Gson,Jsonobject,对于java数据处理程序,我发送格式正确的JSON,但是结合了Spring、java决定如何转换它看到的内容,以及框架,我真的不应该去改变JSON,这样一旦我看到它,它就会变成LinkedTreeMap,我需要将它转换成JsonObject。 这不是将JSON序列化/反序列化为java对象,它的“最终形式”是gson JsonObject,它需要能够处理任何有效的JSON { "key":"value", "object": { "array":[ "value1",

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

{
"key":"value",
"object": {
    "array":[
        "value1", 
        "please work"
        ]
    }
}
是我一直在使用的示例,一旦我看到它,它就是一个LinkedTreeMap,它将.toString()映射到

您可以将“=”替换为“:”,但其中没有

new JsonParser().parse(gson.toJson(STRING)).getAsJsonObject()
战略


是否有更直接的方法将LinkedTreeMap转换为JsonObject,或者有库将内部引号添加到字符串,或者甚至有方法将sting转换为不需要内部引号的JsonObject

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

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

可能相关:我不明白。你想得到一个
字符串吗?然后只需
toJson
传入
LinkedTreeMap
。我想通过各种手段获取一个JsonObject,因为还没有找到直接从LinkedTreeMap到JsonObject的方法,所以我开始研究字符串操作,因为有一种正确的方法可以将字符串转换为JsonObject。您是如何获得
LinkedTreeMap
的?只要直接反序列化到
JsonObject
。LinkedTreeMap就是我从“Spring、Java决定如何转换它所看到的,以及我真的不应该去改变的框架的组合”中得到的。当我第一次访问数据时,它已经是LinkedTreeMap了,如果你可以直接反序列化LinkedTreeMap到JsonObject,这就是问题的答案。
LinkedTreeMap<?,?> yourMap = ...;
JsonObject jsonObject = gson.toJsonTree(yourMap).getAsJsonObject();
gson.fromJson(theJson, JsonObject.class);