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。
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。
你去掉看看有什么问题吗
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 肯定是可以的