[英]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.