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.   

    我们项目没这个struts2-json-plugin包,也可以使用json。
    你去掉看看有什么问题吗
      

  2.   

    弄了弄,该方法可以完整执行,可是又有新的问题出现,json传不了给页面。我晕。
      

  3.   

    只用struts2-json-plugin这个包,把json-lib去掉
      

  4.   

    把json-lib去掉的话,使用不了JSONArray
      

  5.   

    自己单独写   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 肯定是可以的