+-

我使用org.json库将Object转换为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,你可以在getum中添加getter:
public enum JobStatus implements Serializable{
INCOMPLETE,
INPROGRESS,
ABORTED,
COMPLETED;
public String getStatus() {
return this.name();
}
}
序列化的结果:
{"id":"12345","status":{"status":"INPROGRESS"}}
据我所知,JSONObject不支持对内部没有任何附加数据的枚举的正确序列化.
点击查看更多相关文章
转载注明原文:Java:将包含枚举的对象转换为Json对象 - 乐贴网