2010-12-21 3 views
1

jstream에 객체를 de/serialize하기 위해 xstream을 사용하고 있습니다.xstream json : java.util.Properties를 객체 리터럴로 변환

나는 java.util.Properties을 직렬화하고 싶지만 자바 스크립트에서 객체 리터럴로 직렬화하기를 원합니다.

e.e. 속성 p = 새 속성(); p.setProperty ("a", "b"); p.setProperty ("x", "y"); JSON에 XML을 변환 어렵다 바로 XML을 얻기 전에 중간 XML로

그것은 XStream을 쉽게하지
{a: 'b', x: 'y'} 
+0

java.util.Properties와 함께 제공되는 모든 상속 된 속성 (예 : java.home)을 원하십니까? – jpkrohling

+2

당신은'{ "a": "b", "x": "y"}' – dogbane

답변

3

, XStream을 먼저 보안관 때문에 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();