2017-11-18 229 views
1

我有下面的类:杰克逊序列化到阵列

class People 
{ 
    private List<String> people = new ArrayList<>(); 

    public People() 
    { 
     people.add("Jhon"); 
     people.add("Rose"); 
    } 
} 

它使用杰克逊序列化到{"people":["Jhon","Rose"]}

我想序列化到["Jhon","Rose"]没有自定义序列。

有什么建议吗?

任何帮助将不胜感激!

回答

0

最简单的方法是让外地和序列化,而不是包装对象:

People people = new People(); 
String json = mapper.writeValueAsString(people.getPeople()); 

如果这不是一种选择,一个Converter可能比自定义序列简单:

class PeopleToList extends StdConverter<People, List<String>> { 
    @Override public List<String> convert(People people) { 
     return people.getPeople(); 
    } 
} 

并指定使用:

@JsonSerialize(converter = PeopleToList.class) 
class People {