繁体   English   中英

如何在JSON响应中忽略(/隐藏)类的属性

[英]How to ignore(/hide) attributes of class in JSON response

我是Java RESTful Web服务的新手。 我有如下的类结构:

    class BaseClass{
        String basicInfo; 
    }

    class DataClass extends BaseClass{
        String id;  
    }   

    class DataList extends BaseClass{
        List<DataClass> dataList;
    }

当我将DataList类作为Web服务的响应时,我以以下格式获取它:

    {
        "basicInfo" : "Mandetory",
        "dataList"  : [
                {
                    "basicInfo" : "Optional",
                    "id" : "I_1001"                 
                },
                {
                    "basicInfo" : "Mandetory",
                    "id" : "I_1002"
                }
        ]

    }

但是我想忽略dataList的每个Data Object中的“ basicInfo”属性。

恩。

{
        "basicInfo" : "Mandetory",
        "dataList"  : [
                {
                    "id" : "I_1001"                 
                },
                {
                    "id" : "I_1002"
                }
        ]

    }

有什么办法可以忽略这些属性(使用注释)?

注意:我无法更改类结构。

@JsonIgnore

以上是您需要的注释。 要获得更多的变化,您可以通过以下链接 将上面的注释添加到您要在传输对象中忽略的字段,解析时将忽略它。 既然您没有提到要使用哪个库来处理json,我已经使用Jackson Library回答了您的问题。

您可以使用JAX-B注解@XmlTransient你的属性basicInfo

另外,当JSON-B(JSR 367)可用(Java EE 8)时,您可以使用@JsonbTransient或更好的@JsonbVisibility属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM