2015-10-18 40 views
0

我在JSON中使用杰克逊到java.It正常工作正常。如何反序列化与杰克逊解包的json?

但是,我有一个问题。

我的大多数json将包含常见的字段,如状态和描述以及几个不断变化的字段。

我在考虑将通用字段放入一个单独的类中,并将其对象包含到所有类中,但它不能以这种方式工作,因为杰克逊无法忽略这两个字段需要设置在其他对象中。

Class login { 
    private String name; 
    private Response response; 
    /* getters and setters*/ 
} 

Class Response { 
    private String status; 
    private string description; 
    /* getters and setters*/ 
} 

这不会对JSON

{ 
    "name": "", 
    "status": "", 
    "description": "" 
} 

请建议,以实现它。我能想到的只有acchieve它继承的最好的方式工作。

+0

感谢康纳..只是提及我不会喜欢使用我自己的Objectmapper,因为我必须为所有类都做。 – Smiles

+0

只是看着如何通过使用两个类来处理json到java的{name:“”,status:“”,description:“”} ...所以我不必为每个响应类添加状态和描述 – Smiles

回答

2

更改您的JSON如下所示:

{ 
    "name": "", 
    "response": { 
     "status": "", 
     "description": "" 
    } 
} 

,或者如果你不能改变JSON然后改变你的类:

abstract class Response 
{ 
    private String status; 
    private String description; 
} 


class Login extends Response 
{ 
    private String name; 
} 

如果你改变了JSON以你现在的代码才起作用我上面写的那个。

+0

谢谢梅达。我希望我可以。我正在回应并不能改变它。但我喜欢这个建议。理想上这个服务应该是这样编码的。 – Smiles

+0

我可能正在寻找一种解决方案,如果没有继承或客户端映射器,这可能是不可能的......但是想要讨论 – Smiles

+0

@Smiles好吧,我更新了,没有测试,我更像是GSON用户,如果它不起作用试图让他们公开 – meda