[英]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.