可外部化:使用Gson进行序列化

时间:2016-01-29 23:14:37

标签: java serialization gson

我正在使用Gson来序列化class名为User.class的{​​{1}}扩展Externalizable

public class User implements Externalizable {

    String username = "testname";        

    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {}

    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
      out.writeObject(username);
    }
}

文件中的输出是

{
   user: {}
}

而不是

{
   user: "testname"
}

3 个答案:

答案 0 :(得分:1)

使用

Gson gson = new GsonBuilder().create();
gson.toJson(new User(), System.out);

生成以下输出:

{"username":"testname"}
使用

<dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.4</version>
    </dependency>

为什么要使用用户:“testname”代替用户名:“testname”?

答案 1 :(得分:0)

您需要将用户名设置为用户对象。确保它已附在物体上。

添加构造函数并更改类,如下所示:

private String username;

public User(){
 this.username = "testuser";
}

答案 2 :(得分:0)

添加如下构造函数:

   public User(String username) {
    this.username = username;
     }

创建名为getUsername()的方法:

  public String getUsername() {
    return username;
    }

这是你的代码:

   @Override
   public void writeExternal(ObjectOutput out) throws IOException {
     out.writeObject(username);
   }

有关详细信息,请查看此example

相关问题