0

Map<String, Map<String, String>> を Codehaus-Jettison JSONObject に変換する必要があります。

Gson や他のライブラリを使用すると、これを実現する簡単な方法があることは承知していますが、この場合は Jettison を使用する必要があります。

ドキュメントから私が理解していることは、私ができることです:

Map<String, Map<String, String>> tagsMap = new HashMap<>();
Map<String, String> tags = new HashMap<>();
tags.put("tag1", "value1");
tags.put("tag2", "value2");
tags.put("tag3", "value3");

tagsMap.put("table1", tags);
tagsMap.put("table2", tags);
tagsMap.put("table3", tags);

JSONObject jsonObject = new JSONObject(tagsMap);

System.out.println(jsonObject.toString());

しかし、new JSONObject(map)Map<String, String> でのみ機能しているようで、上記のコードでは、次の誤った出力になります。

{"table3":"{tag1=value1, tag2=value2, tag3=value3}","table2":"{tag1=value1, tag2=value2, tag3=value3}","table1":"{tag1=value1, tag2=value2, tag3=value3}"}

私の目的の出力は、次のような適切な JSON コンテンツである必要があります。

{"table3":{"tag1":"value1", "tag2":"value2", "tag3":"value3"},"table2":{"tag1":"value1", "tag2":"value2", "tag3":"value3"},"table1":{"tag1":"value1", "tag2":"value2", "tag3":"value3"}}

Jettisonのみでこれを行う方法はありますか?

4

1 に答える 1