如何在Struts中使用其键值获取json对象?
我正在struts中处理Web服务。 现在我想要使用其键值的json对象。 然后我必须在响应中发布类似数组的内容。 我不知道如何在Struts中这样做。 我知道如何在Servlets中做到这一点。 所以,我正在使用我尝试过的以下代码,但我认为它在Struts中有所不同。
JSONObject json = (JSONObject)new JSONParser().parse(jb.toString()); String key_value= json.get("key").toString();
那么,如何在Struts中完成它。 还请告诉我如何解析json数组作为响应。
使用JSON不需要将JSON发送到Struts。 即使它可以配置为接受JSON内容类型,它也无济于事。 你可以使用普通的Struts请求和传入的数据。 如果它是一个Ajax调用,那么你可以使用类似的东西
$.ajax({ url: " ", data : {key: value}, dataType:"json", success: function(json){ $.each(json, function( index, value ) { alert( index + ": " + value ); }); } });
该value
应该是通过params
拦截器和OGNL填充的action属性。 成功返回的json
函数应该是JSON对象,可以直接使用而无需解析。
您需要为属性key
提供操作配置和设置器。
struts.xml
:
此配置使用包"json-default"
"json"
结果类型,如果您使用struts2-json-plugin ,则它可用。
动作类:
public class Bbb extends ActionSupport { private String key; //setter private List value = new ArrayList<>(); //getter public String ccc(){ value.add("Something"); return SUCCESS; } }
当您返回SUCCESS
结果时,Struts将通过在序列化期间调用其getter方法将root
参数定义的value
属性序列化为JSON结果。
如果您需要将JSON发送到Struts操作,您应该阅读此答案。