我正在尝试使用Struts2 JSON插件为jQuery-ui自动完成AJAX调用序列化JSON。格式来自:jQueryUI Docs
具有标签和值属性的对象数组:
[ { label: "Choice1", value: "value1" }, ... ]
我有这个POJO:
public class AutoCompleteJqueryBean {
private Long value;
private String label;
public Long getValue() {
return value;
}
public void setValue(Long value) {
this.value = value;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public AutoCompleteJqueryBean(String label, Long value){
this.label = label;
this.value = value;
}
}
哪个序列化为此JSON:
{"sponsors":[{"label":{"label":"A Duplicate"},"value":{"value":410}},{"label":{"label":"A Duplicate 2"},"value":{"value":319}},{"label":{"label":"A Duplicate 3"},"value":{"value":128}},{"label":{"label":"A Duplicate 4"},"value":{"value":191}}]}
我也试过地图无济于事。如何强制jQuery自动完成格式?
该操作有一个AutoCompleteJqueryBean数组,带有公共getter / setter。
答案 0 :(得分:2)
Struts2 JSON插件正在序列化您的整个行动。
如果sponsors
是List<AutoCompleteJqueryBean>
(或某种其他类型的数组或集合),并且您希望阻止在结果中返回它,则需要在配置中将其设置为根对象:< / p>
<result type="json">
<param name="root">sponsors</param>
</result>