2
을 String
으로 직렬화하려고합니다. 그것은 꽤 간단한 작업처럼 보이지만 어떤 이유로 DateTime
이 그것을 깨뜨리는 것처럼 보입니다.JsonGenerationException : CSV 생성기가 속성의 객체 값을 지원하지 않습니다.
Test.java
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.joda.time.DateTime;
public class Test {
public static void main(String args[]) {
try {
List<Foo> foos = new ArrayList<>();
Foo foo = new Foo();
foo.setID(1);
foo.setCURRENT(new DateTime(new Timestamp(System.currentTimeMillis())));
foos.add(foo);
String content = serialize(foos, Foo.class, Boolean.TRUE);
System.out.println(content);
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static final synchronized String serialize(final Object object, final Class type, final Boolean withHeaders) throws IOException {
CsvMapper csvMapper = new CsvMapper();
CsvSchema csvSchema;
if (withHeaders) {
csvSchema = csvMapper.schemaFor(type).withHeader();
} else {
csvSchema = csvMapper.schemaFor(type).withoutHeader();
}
return csvMapper.writer(csvSchema).writeValueAsString(object);
}
}
Foo.java
import org.joda.time.DateTime;
public class Foo {
private Integer ID;
private DateTime CURRENT;
public Foo() {
}
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
public DateTime getCURRENT() {
return CURRENT;
}
public void setCURRENT(DateTime CURRENT) {
this.CURRENT = CURRENT;
}
}
내 Foo
객체 @JsonGetter
및 @JsonSetter
를 사용하여 시도했지만 정말 어떤 영향을하지 않습니다.
이 오류의 원인은 무엇입니까?