Java:将包含枚举的对象转换为Json对象

我正在使用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" : {}}

它显示为空白并添加了卷曲基数。这是什么意思?有人遇到过这个问题吗?

回答:

首先,我强烈建议您不要使用此库(org.json),这是一个非常古老且不受支持的库(据我所知)。我建议杰克逊或格森。

但是,如果您确实需要JSONObject,则可以将getter添加到枚举中:

 public enum JobStatus implements Serializable{

INCOMPLETE,

INPROGRESS,

ABORTED,

COMPLETED;

public String getStatus() {

return this.name();

}

}

序列化的结果:

{"id":"12345","status":{"status":"INPROGRESS"}}

据我所知,JSONObject不支持枚举的正确序列化,枚举内部没有任何其他数据。

以上是 Java:将包含枚举的对象转换为Json对象 的全部内容, 来源链接: utcz.com/qa/434409.html

回到顶部