带有HashMap的Java XStream

Ken*_*ika 6 java json xstream

我想使用XStream将java哈希转换为json哈希.我觉得这应该比看起来容易.我正在寻找的是一种方法:

Map<String, String> map = new HashMap<String, String>();
map.put("first", "value1");
map.put("second", "value2");
Run Code Online (Sandbox Code Playgroud)

成为

{'first' : 'value1', 'second' : 'value2' }
Run Code Online (Sandbox Code Playgroud)

关闭我将它转换为一系列数组.

XStream xstream = new XStream(new JettisonMappedXmlDriver() {
    public HierarchicalStreamWriter createWriter(Writer writer) {
        return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE);
    }
});

xstream.toXML(map);
Run Code Online (Sandbox Code Playgroud)

变成了

[["first", "value1"], ["second", "value2"]]
Run Code Online (Sandbox Code Playgroud)

我觉得将java哈希转换为json哈希应该是直截了当的.我错过了什么吗?

Dan*_*aro 0

我在转换为 json 时遇到了类似的问题。我对这个问题的解决方案是在放入文件(在我的例子中是数据库)之前将字符串格式化为 Json。到目前为止,我想到的最有效的过程是在我的类中创建一个 toJson 函数,就像 toString 一样工作。

例子:

将对象数据输出字符串转换为 Json 格式

public JsonObject toJson()
   {

       JsonObject temp = new JsonObject();
       temp.addProperty(tagName,floatData);
       return temp;
    }
Run Code Online (Sandbox Code Playgroud)

因此,对于您来说,在填充地图时实施类似的过程。