关于网友提出的“ struts2+json冲突的问题”问题疑问,本网通过在网上对“ struts2+json冲突的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: struts2+json冲突的问题
描述: import java.util.ArrayList;
import net.sf.json.JSONArray;
import com.opensymphony.xwork2.Action;
public class JSONExample1 {
public static void main(String[] args) {
new JSONExample1().execute();
}
ArrayList list;
private String result;
public String execute() {
System.out.println("开始");
// JSONArray ja1 = JSONArray.fromObject("['json','is','easy']");
// System.out.println(ja1.toString());
list = new ArrayList();
/*
* for (int i = 0; i < 2; i++) { HashMap folder = new LinkedHashMap();
* folder.put("id", "12345"); folder.put("name", "12345"); HashMap
* status = new LinkedHashMap(); status.put("fileCount", "2");
* status.put("fileSize", "1111"); folder.put("status", status);
*
* list.add(folder); } list.clear();
*/
list.add("123");
System.out.println("test1");
JSONArray ja = JSONArray.fromObject(list);
System.out.println("test2");
result = ja.toString();
System.out.println("结束");
return Action.SUCCESS;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public ArrayList getList() {
return list;
}
public void setList(ArrayList list) {
this.list = list;
}
}
直接运行main方法,正常。
在前台调用struts2,该方法只打印到test1,没有打印test2,也没有报错。
是不是json包冲突了?
我引用了json-lib和struts2-json-plugin这两个包,没引用jsonplugin。
解决方案1: 自己单独写
response.setContentType("text/json;charset=utf-8");
PrintWriter out = response.getWriter();
JSONArray ja = new JSONArray();
for(CategoryNode c: node){
JSONObject j = new JSONObject();
j.put("id", c.ID);
j.put("name", c.Name);
ja.add(j);
out.write(ja.toString());
out.close();
return null
不要struts2提供的返回json 肯定是可以的
解决方案2: 只用struts2-json-plugin这个包,把json-lib去掉
解决方案3: 我们项目没这个struts2-json-plugin包,也可以使用json。
你去掉看看有什么问题吗
解决方案4: 从新发布下工程,应该没问题。
以上介绍了“ struts2+json冲突的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2180706.html