如何序列化类属性?

时间:2019-04-22 14:40:30

标签: java json jackson jsonschema

我需要从代码生成一个json模式。这是我的问题的一个示例:

public class A implements Serializable{
 private ControllerA controllerId;
}

public ControllerA extends RefString{
 private ControllerA(){}
 public ControllerA(string id){
  super(id)
 }
}

public RefString extends Ref<String>{
 public RefString() {
  super();
 }

 public RefString(String id) {
  super(id);
 }
}

public abstract class Ref<Type> implements Serializable{
 private Type id;
 protected Ref() {}
 public Ref(Type id) {
   this.id = id;
 }

 public Type getID() {
  return this.id;
 }

 @Override
 public String toString() {
  return "Ref [id=" + id + "]";
 }
}

当我尝试使用杰克逊从A类创建架构时,生成的输出为:

"controllerId" : {
 "type" : "object",
 "id" : "urn:A:ControllerA"
   "properties" : {
     "id" : {
       "type" : "string"
     }
   }
}

但是我想要的是这样的:

"controllerId" : {
 "type" : "string"
}

有解决方案吗?我尝试对ControllerA类进行序列化,但这还不够,因为Ref <>类提供了“字符串”类型。

0 个答案:

没有答案