日期:2014-05-20  浏览次数:21119 次

怎么将lisng<String>类型的集合转为JSON 在页面上用ext的Combox显示
public String getAllCom(){
List<String> companys;
companys=companyService.getAllComs();
JSONArray array=new JSONArray();
JSONObject obj=new JSONObject();
if(companys.size()>0){
for (int i = 0; i < companys.size(); i++) {
obj.put(i, companys.get(i));
}
array.add(obj);
System.out.println(array.toString());
return "success";
}
return INPUT;
}



这样写总是不对, 各位大仙帮忙啊 
------解决方案--------------------
改为:
JSONArray obj=JSONArray.fromObject(companys); 
System.out.println(a.toString()); 
------解决方案--------------------
按照你的代码写好之后为什么没有东西打印出来呢?
------解决方案--------------------
你需要在JSP或SERVLET中输出:

public String getAllCom(){
List<String> companys;
companys=companyService.getAllComs();
JSONArray array=new JSONArray();
JSONObject obj=new JSONObject();
if(companys.size()>0){
for (int i = 0; i < companys.size(); i++) {
obj.put(i, companys.get(i));
}
array.add(obj);

JSONObject resultObj=new JSONObject();
resultObj.put("root",array);
resultObj.put("success",true);
return resultObj.toString();
}
return "{success:false}";
}


JSP代码:

String result=<Your_class>.getAllCom();
out.println(result);


------解决方案--------------------
public String get() {
List<String> companyNames;
JsonObject objTemp = null ;
JsonObject obj = new JsonObject() ;
companyNames = companyService.getAllComs();
JsonArray array = new JsonArray();

for (int i = 0; i < companyNames.size(); i++) {
 objTemp = new JsonObject();
objTemp.addProperty("valueField", i);
objTemp.addProperty("dispalayField", companyNames.get(i).toString());
array.add(objTemp);
}
setJsonString(array.toString());
obj.addProperty("results", companyNames.size());
obj.add("rows", array);
System.out.println("!!!!!!!!!!!"+obj.toString());
setJsonString(obj.toString());
return "success";
}