繁体   English   中英

REST-如何减少Json响应

[英]REST - How to minify Json Response

我有一个JAVA REST服务,它返回对象列表。 每个对象都包含名称,描述,代码。 我想缩小响应json

{
    "objects": {
        "count": 10000,
        "list": [
            {
                "name": "1",
                "description": "foo",
                "code": "foo",
            },
            {
                "name": "2",
                "description": "bar",
                "code": "bar",
            },
            ...... (1.000 items)
        ]
    }
}

至:

{
    "a": {
        "b": 1000,
        "c": "a:objects,b:count,c:mapping,d:list,e:name,f:description,g:code",
        "d": [
            {
                "e": "1",
                "f": "foo",
                "g": "foo",
            },
            {
                "e": "2",
                "f": "bar",
                "g": "bar",
            },
            ...... (1.000 items)
        ]
    }
}

我该怎么办,谢谢。

即使我们不知道您在使用什么特定技术。 我将假设您正在使用某种REST库(例如Spring或JaxRS),并且正在将POJO序列化为JSON。 我还将假设您已完成所有设置并为该配置工作,并且我将专注于使用该设置的输出。

如果您在POJO中使用Jackson之类的东西,则可以在类中添加以下注释:

public class MyResponseObject {
    @JsonProperty("a")
    private MyObject objects;

    public MyObject getObjects() { return objects; }
    public void setObjects(MyObject object) { this.objects = object; }
}

public class MyObject {
    @JsonProperty("b")
    private long count;
    @JsonProperty("d")
    private List<Item> list;

    // getters/setters
}

public class Item {
    @JsonProperty("e")
    private Sting name;
    @JsonProperty("f")
    private String description;
    @JsonProperty("g")
    private String code;

    // getters/setters
}

关于这些含义的映射,您可以对映射进行硬编码,但我认为没有自动的方式可以做到这一点。 您还可以在该方法的JavaDoc中包括该映射的内容。 另一个选择是,如果这是对其他服务公共的API,则不仅可以提供文档,还可以提供带有API推出的POJO的打包Jar。 这样,他们所需要做的就是将jar文件作为依赖项包含在映射类中。

我希望这有助于您朝正确的方向发展。

另外,如果您不使用Jackson,而是喜欢使用JAXB,请使用@XmlElement(name="a")

暂无
暂无

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

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