Java SOJO CSV序列化

Java SOJO CSV序列化,java,serialization,csv,Java,Serialization,Csv,我正在尝试使用SOJO将Java对象序列化为CSV。这个例子看起来很简单: Car car = new Car("My Car"); car.setDescription("This is my car."); Serializer csvSerializer = new CsvSerializer(); String csvStr = (String) csvSerializer.serialize(car); System.out.println(csvStr); // print: //

我正在尝试使用SOJO将Java对象序列化为CSV。这个例子看起来很简单:

Car car = new Car("My Car");
car.setDescription("This is my car.");
Serializer csvSerializer = new CsvSerializer();
String csvStr = (String) csvSerializer.serialize(car);
System.out.println(csvStr);
// print:
// description,build,properties,name,~unique-id~,class  
// This is my car.,,,My Car,0,test.net.sf.sojo.model.Car
我尝试实现我自己版本的示例。我制作了一个非常简单的
Car
类,它有两个
String
字段(
build
description
),实现了
setDescription(…)
方法

这就是我实现的:

import net.sf.sojo.interchange.csv.CsvSerializer;


public class Main {

private class Car
{
    private String build;
    private String description;
    public Car(String build) {
        this.build = build;
        this.description = null;
    }

    public void setDescription(String description) {
        this.description = description;
    }


}

public static void main(String[] args) {
    Main m = new Main();
    Car car = m.new Car("My Car");
    car.setDescription("This is my car.");
    CsvSerializer csvSerializer = new CsvSerializer();
    String csvStr = (String) csvSerializer.serialize(car);
    System.out.println(csvStr);
}

}
但是,当我运行我的实现时,我会得到以下输出:

~unique-id~,class,description
0,Main$Car,
我不明白为什么在我的实现中,
build
description
字段都没有序列化,你能帮我吗

干杯


Pete

我没有使用SOJO,但是对于私有字段,您可能需要getter方法;或者您可以尝试将字段声明为公共的。

来自SOJO主页:“这个项目的目的是一个Java框架,它以简化的表示形式转换JavaBean”

示例中的Car对象不符合条件。对于希望SOJO写入(或读取)文件的每个属性,必须有一个getter(可能还有一个setter)。添加getBuild()和getDescription()