JAXB -EclipseLink MOXy对象类型未正确编组

时间:2015-11-02 05:16:28

标签: jax-rs eclipselink moxy

public class ResposneMessage {

    private int status;
    private String code = "";
    private String message = "";
    private Object data;
}

" DictType"没有编组:

{
  "code": "",
  "data": "com.testapp.model.DictType@7c9a897 com.testapp.model.DictType@43581423 com.testapp.model.DictType@217adb02 com.testapp.model.DictType@6ff992bb com.testapp.model.DictType@253e12c3 com.testapp.model.DictType@2644f34b com.testapp.model.DictType@51919e4a com.testapp.model.DictType@72deb289 com.testapp.model.DictType@27231e1b com.testapp.model.DictType@26fc6f1f com.testapp.model.DictType@7b42c644 com.testapp.model.DictType@7c8f695f com.testapp.model.DictType@43637313",
  "message": "",
  "status": 200
}

默认不是封送Object类型。

1 个答案:

答案 0 :(得分:0)

var base36 = decNumb.toString(36);无法编组到任何有意义的JSON表示,因为负责编组对象的库使用反射来执行此操作。它似乎只是查看您定义的层次结构中最顶层的类,并在其中找到它所发现的任何内容。 由于Object没有任何内容,因此您只需获得Object代表。

FWIW:当您尝试编组接口或(抽象)超类时,会发生同样的情况。您只能在编组输出中看到接口/超类本身定义的属性 - 无论后代类声明/定义什么。 举个例子:

.toString()

这只会public class SuperClass { } public class OtherClass extends SuperClass { public String someProperty = "test"; } public class MarshallMe { public SuperClass classTest = new OtherClass(); } ,因为"classTest":{}没有自己的任何属性。