我正在使用 org.json 库将对象转换为 Json 格式。请检查以下代码片段。
public enum JobStatus implements Serializable{
INCOMPLETE,
INPROGRESS,
ABORTED,
COMPLETED
}
public class Job implements Serializable {
private string id;
private JobStatus status;
...
}
...
// Create Job Object
Job job = new Job("12345", JobStatus.INPROGRESS);
// Convert and print in JSON format
System.out.println(new JSONObject(job).toString());
输出结果如下:
{"id":"12345", "status" : {}}
它显示空白并添加 Curly 碱基。这是什么意思?有人遇到过这个问题吗?
最佳答案
首先,我强烈建议不要使用这个库 (org.json),这是一个非常古老且不受支持(据我所知)的库。我建议 Jackson或 Gson .
但是如果你真的需要JSONObject,你可以在枚举中添加getter:
public enum JobStatus implements Serializable{
INCOMPLETE,
INPROGRESS,
ABORTED,
COMPLETED;
public String getStatus() {
return this.name();
}
}
序列化结果:
{"id":"12345","status":{"status":"INPROGRESS"}}
据我所知,JSONObject 不支持对内部没有任何附加数据的枚举进行正确序列化。
关于Java : Convert Object consisting enum to Json Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871013/