2014-11-29 5 views
0

최근에 객체를 파일에 덤프하려고했는데 모든 것이 잘 동작합니다. 하지만 문제는 출력 파일이 루비에서 사용되기 때문에 루비 최적화 버전을 원한다는 것입니다. 다음과 같이 I 출력을 필요snakeyaml에서 덤핑하는 동안 루비 최적화 버전 만들기

{foo: null, bar: null, foo1: null, bar1: null} 

을 :하지만 현재 덤프 파일에는 다음이 포함

--- 
bar: ~ 
bar1: ~ 
foo: ~ 
foo1: ~ 

을 그래서, snakeyaml를 사용하는 것을 할 수있는 방법에 대해 설명합니다. 에 utf-8 최적화 루비 버전이 있습니다.

답변

1

나는 그 대신 yaml.dump(map)yaml.dumpAsMap(map)을 사용할 수 있습니다 귀하의 질문을 이해하고, TreeMap 다음 String.replace(String, String)

Map<String, String> map = new TreeMap<>(); 
map.put("foo", null); 
map.put("bar", null); 
map.put("foo1", null); 
map.put("bar1", null); 

Yaml yaml = new Yaml(); 
String output = yaml.dumpAsMap(map); // yaml.dump(map); 
System.out.println("---"); 
System.out.println(output.replace("null", "~")); 

같은 출력 (요청에 따라)

------ 
bar: ~ 
bar1: ~ 
foo: ~ 
foo1: ~ 
+0

경우 것입니다 배열 아니라 그 일 너무 개체? –

+0

@Gowtham지도가 배열이 아닙니다. 그래서 당신에게 배열을 줄'yaml.dump (array)'를 사용할 것입니다. 너는 정확히 무엇을 묻고 있니? –

+0

이것은 일반적인 vars에서는 작동하지만 객체 배열을 덤프하는 경우에는 작동하지 않습니다. 샘플 유효성 확인 : [http://i.stack.imgur.com/9vaM2.png](http://i.stack.imgur.com/9vaM2.png). 여러분이 볼 수 있듯이'tracks'은'Track' 클래스의 객체 배열입니다 –