Java Gson 在序列化期间排除字段
2022-09-01 19:38:13
我有一个包含 a 和 a 的类。现在我想使用gson序列化对象,但排除该字段。ConfigInstance
password
password_hash
password
public class ConfigInstance {
public String database_address;
public int database_port;
public String database_user;
@Expose(serialize = false)
private String database_pass;
public String database_pass_hash;
public String GetPass() { return database_pass; }
public void Encrypt() { /* Creates the hash before serializing*/ }
public void Decrypt() { /* Creates the password after deserializing */}
}
如您所见,我尝试过使用,但它似乎没有做任何事情。另外,我已经将字段设置为私有,因为我认为这将“覆盖”@Expose(serialize = false)
@Expose
但运行以下代码:
private void toFile(File file, ConfigInstance map) {
map.Encrypt();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonConfig = gson.toJson(map);
FileWriter writer;
try {
writer = new FileWriter(file);
writer.write(jsonConfig);
writer.flush();
writer.close();
} catch (IOException e) {
System.out.println("Error exporting config: " + e.toString());
}
}
仍然导致以下文件内容没有错误:
{
"database_address": "127.0.0.1",
"database_port": 1521,
"database_user": "test",
"database_pass": "test1234",
"database_pass_hash": "B9FE2C011B59F0D0D383D70073E48A19"
}
那么我做错了什么呢?我现在非常无知,并希望得到任何帮助,因为这似乎不起作用。
提前致谢。