2010-12-21 54 views
1

我使用xstream将对象序列化为json。xstream json:将java.util.Properties转换为对象文字

我想序列化一个java.util.Properties,但我希望它作为对象字面值在JavaScript中序列化。

I.e. 属性p = new Properties(); p.setProperty(“a”,“b”); p.setProperty(“x”,“y”);将XML转换成JSON和获取XML恰到好处是很难前

{a: 'b', x: 'y'} 
+0

您是否还想要所有与java.util.Properties一起提供的“inherited”属性,如java.home? – jpkrohling 2010-12-21 17:03:26

回答

3

这是不容易使用XStream,因为XStream的第一乘警的Properties对象到XML中介:

应转换。

要遍历属性并直接构建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();