如何在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操作,您应该阅读此答案。