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