2010-12-21 63 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();