2016-06-27 14 views
8

Javaデータハンドラの場合、JSONは適切にフォーマットされていますが、Spring、Javaの見方を決めるJavaと、 JSONを見れば、それはLinkedTreeMapになり、JsonObjectに変換する必要があります。 これはJSONをJavaオブジェクトにシリアライズ/デシリアライズするのではなく、 "最終形式"はgson JsonObjectであり、文字どおり有効なJSONを処理できる必要があります。LinkedTreeMapをgson JsonObjectに変換するにはどうすればいいですか

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

は、それはあなたが "=" で置き換えることができ

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

にLinkedTreeMap .toString()のですが、私は私がそれを見ると、使用してきたサンプルです ":"、それは内部の引用符を持っていません。

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

戦略。

LinkedTreeMapをJsonObjectに変換するより直接的な方法や、文字列に内部引用符を追加するライブラリ、あるいは内部引用符を必要としないJsonObjectに変換する方法さえありますか?

+0

JsonObjectに直接JSONをデシリアライズ、あなたができる場合は、その注意:http://stackoverflow.com/questions/22285661/gson-json-and-リンクされた微妙なマップ – Nivas

+0

私は理解していません。 'String'を取得しようとしていますか?次に 'toJson'だけが' LinkedTreeMap'を渡します。 –

+0

私はJsonObjectをフックまたは詐欺で取得しようとしていますが、LinkedTreeMapからJsonObjectへ直接行く方法が見つからないため、JsonObjectに変換された文字列を取得する適切な方法があるので、 。 – Bronanaza

答えて

24

通常、オブジェクトをJSONにシリアル化し、そのJSONを解析してJsonObjectに戻す必要があります。幸いにも、Gsonは、toJsonTreeメソッドを提供しています。

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

ちょうどおそらく関連

gson.fromJson(theJson, JsonObject.class); 
関連する問題