Java REST-如何缩小Json响应

Java REST-如何缩小Json响应,java,json,rest,minify,Java,Json,Rest,Minify,我有一个JavaREST服务,它返回一个对象列表。每个对象都包含名称、描述和代码。 我想缩小响应json { "objects": { "count": 10000, "list": [ { "name": "1", "description": "foo", "code": "foo", },

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

{
    "objects": {
        "count": 10000,
        "list": [
            {
                "name": "1",
                "description": "foo",
                "code": "foo",
            },
            {
                "name": "2",
                "description": "bar",
                "code": "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
}
公共类MyResponseObject{
@JsonProperty(“a”)
私有对象;
public MyObject getObjects(){return objects;}
public void setObjects(MyObject对象){this.objects=object;}
}
公共类MyObject{
@JsonProperty(“b”)
私人长计数;
@JsonProperty(“d”)
私人名单;
//能手/二传手
}
公共类项目{
@JsonProperty(“e”)
私名;
@JsonProperty(“f”)
私有字符串描述;
@JsonProperty(“g”)
私有字符串码;
//能手/二传手
}
关于这些含义的映射,您可以对映射进行硬编码,但我不认为有一种自动的方法可以做到这一点。您还可以在方法的JavaDoc中包含映射。另一种选择是,如果这是一个对其他服务公开的API,那么您不仅可以提供文档,还可以提供一个打包的Jar,其中包含API提供的POJO。这样,他们所要做的就是将jar文件作为依赖项包含在映射类中

我希望这有助于引导你朝着正确的方向前进


另外,如果您不使用Jackson,而是更喜欢JAXB,那么您的服务在.NET中吗?JAVAPHP?这是关于这个问题的重要信息。对不起,我的服务是Java的。关于您当前使用的内容,没有足够的信息。是的,Gson也支持通过使用
@SerializedName(“a”)
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
}