【发布时间】:2014-07-28 08:44:31
【问题描述】:
我正在尝试使用 XStream 将 Java 对象序列化为 XML 和 JSON。为此,我使用了一个使用 HierarchicalStreamWriter 的自定义转换器。流编写器只有一个 setValue() 方法来添加数据。当我通过这种方法添加数据时,JSON 输出将始终是一个字符串。如何使用转换器以 JSON 格式输出整数、布尔值和日期?
所以简而言之,数据显示为:{ "data": "23" }
应该显示为:{ "data": 23 }
这里是转换器中的marshal方法:
@Override
public void marshal(Object o, HierarchicalStreamWriter writer, MarshallingContext mc) {
ArrayList<HashMap<String, Object>> src = (ArrayList<HashMap<String, Object>>) o;
for(HashMap<String, Object> row : src) {
writer.startNode("row");
Iterator<String> it = row.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
writer.startNode(key);
writer.setValue(row.get(key).toString());
writer.endNode();
}
writer.endNode();
}
}
谁能帮我解决这个问题?
【问题讨论】:
标签: java json integer converter xstream