首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java SOJO CSV序列化

Java SOJO CSV序列化
EN

Stack Overflow用户
提问于 2011-02-03 01:19:12
回答 2查看 1.1K关注 0票数 0

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

代码语言:javascript
复制
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字段(builddescription),它实现了一个setDescription(..)方法。

这就是我所实现的:

代码语言:javascript
复制
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);
}

}

然而,当我运行我的实现时,我得到了以下输出:

代码语言:javascript
复制
~unique-id~,class,description
0,Main$Car,

我不明白为什么在我的实现中builddescription字段都没有被序列化,你能帮上忙吗?

干杯,

皮特

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-03 01:29:23

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

票数 0
EN

Stack Overflow用户

发布于 2011-02-03 01:41:37

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4877579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档