我正在使用xstream将对象/序列化为json。
我想序列化java.util.Properties
,但我希望它在javascript中作为对象文字序列化。
即。 属性p = new Properties(); p.setProperty(“a”,“b”); p.setProperty(“x”,“y”);
应转换为:
{a: 'b', x: 'y'}
答案 0 :(得分:3)
使用XStream并不容易,因为在将XML转换为JSON之前,XStream首先将Properties
对象封送到中间XML中,并且正确地获取XML很难。
循环遍历Properties并直接构建JSON字符串要容易得多。例如,像这样:
StringBuilder builder = new StringBuilder() ;
builder.append('{');
Enumeration keys = props.keys();
while (keys.hasMoreElements()) {
String key = (String)keys.nextElement();
String value = (String)props.get(key);
builder.append('"').append(key).append('"');
builder.append(':');
builder.append('"').append(value).append('"').append(',');
}
builder.deleteCharAt(builder.length()-1);
builder.append('}');
String json = builder.toString();