簡體   English   中英

如何將LinkedTreeMap轉換為gson JsonObject

[英]How do I convert a LinkedTreeMap to gson JsonObject

對於一個java數據處理程序,我發送格式正確的JSON,但是Spring,Java的組合決定如何構建它所看到的內容,而框架我真的不應該改變JSON這樣的狀態,以便一旦我能看到它,就會變成一個LinkedTreeMap,我需要將它轉換為一個JsonObject。 這不是將JSON序列化/反序列化為java對象,它的“最終形式”是gson JsonObject,它需要能夠處理任何有效的JSON。

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

是我一直在使用的樣本,一旦我看到它,它是一個LinkedTreeMap,.toString()s到

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

你可以用“:”替換“=”,但是沒有內部引號

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

戰略。

是否有更直接的方法將LinkedTreeMap轉換為JsonObject,或者將庫內部引號添加到字符串中,甚至是將sting轉換為不需要內部引號的JsonObject的方法?

您通常必須將對象序列化為JSON,然后將該JSON解析回JsonObject 幸運的是, Gson提供了一種跳過解析的toJsonTree方法。

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

請注意,如果可以,只需將JSON直接反序列化為JsonObject

gson.fromJson(theJson, JsonObject.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM