最近在开发一个Web应用时,需要使用Action接收前端传来的JSON数组。下面是我的一些经验和学习过程。
首先,我们需要在Action中定义一个String类型的变量来存储JSON数组,如:
private String jsonStr;
public String getJsonstr() {
return jsonStr;
}
public void setJsonStr(String jsonStr) {
this.jsonStr = jsonStr;
}
定义完变量和方法后,我们需要在前端通过ajax将JSON数组发送给Action。如下面的示例代码:
$.ajax({
url: '/testAction.action',type: 'POST',contentType: 'application/json',dataType: 'json',data: JSON.stringify(jsonArray),success: function(data) {
console.log(data);
}
});
在Action接收JSON数组时,我们需要使用@RequestBody注解,然后将jsonStr变量赋值为JSON数组。如下所示:
public String testAction() {
BufferedReader br = null;
try {
br = request.getReader();
String str = null;
StringBuffer stringBuffer = new StringBuffer();
while ((str = br.readLine()) != null) {
stringBuffer.append(str);
}
// 将传过来的json数组赋值给变量jsonStr
this.jsonStr = stringBuffer.toString();
} catch (Exception e) {
// To do
}
return SUCCESS;
}
最后,我们可以在Action中使用Gson库来解析JSON字符串并将其转换为Java对象。例如:
Gson gson = new Gson();
MyBean myBean = gson.fromJson(jsonStr,MyBean.class);
以上就是我在使用Action接收JSON数组时的一些心得和经验。希望能对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。