比如ajax返回的格式是{v:[{'a':'1','b':'2','c':'3'},{'a':'3','b':'2','c':'1'}]}在js中用eval例如:var resq = eval('"+ajax返回+"');var v = resq.v;for(var i = 0 ; i < v.length;i++){ var val = eval('"+v[i]+"'); alert(val.a);//在这里就组装值,最后innerHTML到相应的id中 }
for(var i = 0; i < jsonArrayObj.length; i++) { //取出数据,做你想要的操作 } });
从数据库直接生成json对象不更好么
List<User> users = new ArrayList<User>(); User user = new User(); user.setUname("b"); user.setPword("b"); user.setSex("b"); user.setAge(2); users.add(user);
JSONArray json = new JSONArray(); // JSONArray jsonArray = json.fromObject(users);
前天是struts2
<s:iterator value="list" status="status">
直接把json对象放在value就可以了吗
var val = eval('"+v[i]+"');
alert(val.a);//在这里就组装值,最后innerHTML到相应的id中
}
你还需要把list变成json返回?没这个必要吧,如果你是用struct的标签,显然就是多次一举,你就直接返回list就可以了。
不然你的做法只是list => json => list 。有这个必要吗?
主要是因为要实现无刷新,数据更新的功能,,,可是list数据不能无刷新传递过去json好像是可以的
List<Bean> list = new ArrayList<Bean>();
list.add(bean);
JSONObject json = JSONObject.forObject(list);
response.getWrite.print(json.toString());前台得到bean中数据
首先是循环传过来的json数据,然后 bean.属性 就可以得到数据了大概的处理是这样
<script>
//这里的json实际上应该是写入你的jsp值,eg. var json = ${json};
var json = "{key:'json',value:'hello world'}";
var jsonObj = eval("(" + json + ")");
for (var k in jsonObj) {
alert(k + " : " + jsonObj[k]);
}
</script>
这样应该就可以实现你的需要了吧
当然你先把你的object的属性变成map传递到client端.
importnet.sf.json.*;import java.util.Map;
import java.util.HashMap;
import java.util.List;public class Convert {
public static JSONObject generate(List list) { Map<String, Object> map = new HashMap<String, Object>();
map.put("totalProperty", list.size());
map.put("root", list);
return JSONObject.fromObject(map);
} public static JSONObject javabean2json(Object object) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("success", true);
map.put("data", object);
return JSONObject.fromObject(map);
} public static JSONObject objectcollect2json(List list, String total) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("totalProperty", total);
map.put("root", list);
return JSONObject.fromObject(map);
}
}
测试代码 public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap map = new HashMap();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
map.put("4", "4");
JSONArray jsonArray = JSONArray.fromObject(map);
System.out.println(jsonArray);
}
输出结果[{"3":"3","2":"2","4":"4","1":"1"}]
需要包:commons-collections-3.2.jarezmorph-1.0.6.jarjson-lib-2.3-jdk15.jarcommons-logging-1.0.4.jarcommons-logging-1.0.4.jar
JSONObject object01 = new JSONObject();//这个可以当成你的list数据
object01.put("id", 56);
object01.put("name", "软件工程师");
object01.put("phone", "132321");JSONArray jsonArray = new JSONArray();
jsonArray.put(object01);
jsonArray.put(object02);
jsonArray.put(object03);这个就是json数据
List<User> list = new ArrayList<User>();
User user = new User();
user.setId("1");
user.setName("aaa");
list.add(user);JSONObject userJSON = new JSONObject();
try {
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
userJSON.put("id", user.getId());
userJSON.put("name", user.getName());
}
} catch (JSONException e) {
e.printStackTrace();
}
request.setAttribute("userJSON", userJSON);
JSP代码块:
var userJSON = ${requestScope.userJSON};
for(temp in cateJSON)
{
var str = temp.id + ' ' +temp.name;
alert(str);
}
http://www.phome.asia/forum/thread/22680.html
JSONArray jsonarr=new JSONArray();
for(Member m:memberList)
{
json=JSONObject.fromObject(m);
jsonarr.add(json);
}
response=ServletActionContext.getResponse();
try {
PrintWriter out=response.getWriter();
out.write(jsonarr.toString());
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(jsonarr.toString());
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<VO> vo = Dao.findVO();//从数据库中查出装有VO的List
JSONArray jsonArray = JSONArray.fromObject(vo);//JSONArray: json数组
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
out.print(jsonArray.toString());
out.flush();
out.close();
}jsp中:
$.post(url, param, function(result){
var jsonArrayObj = JSON.parse(result);
for(var i = 0; i < jsonArrayObj.length; i++) {
//取出数据,做你想要的操作
}
});
User user = new User();
user.setUname("b");
user.setPword("b");
user.setSex("b");
user.setAge(2);
users.add(user);
JSONArray json = new JSONArray();
//
JSONArray jsonArray = json.fromObject(users);
实在不行就按照json的格式拼呗,呵呵
net.sf.json.JSONArray;
net.sf.json.JSONObject;JSONArray a =JSONArray.fromObject(list);
System.out.println(a.toString()); 可以参考参考一下。
list.add(obj1);
list.add(obj2)
...
JSONArray json = new JSONArray();
json.addAll(list);
import java.text.DateFormat;
import java.text.SimpleDateFormat;import org.apache.commons.lang.StringEscapeUtils;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.SerializableString;
import org.codehaus.jackson.io.CharacterEscapes;
import org.codehaus.jackson.io.SerializedString;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializerProvider;/***
* json工具类
*
* @author yanfang.zhao
*
*/
public class JsonUtil { /**
* 将对象转换为json字符串,并将json字符串转换为unicode码
*
* @param obj
* @return
*/
public static String toJson(Object obj) {
if (obj == null) {
return null;
}
String jsonStr = "";
ObjectMapper mapper = new ObjectMapper();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
mapper.setDateFormat(df);
try {
mapper.getJsonFactory().setCharacterEscapes(new UnicodeCharacter());
mapper.getSerializerProvider().setNullValueSerializer(
new NullSerializer());
jsonStr = mapper.writeValueAsString(obj);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonStr;
}
}class NullSerializer extends JsonSerializer<Object> {
public void serialize(Object value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
jgen.writeString("");
}
}class UnicodeCharacter extends CharacterEscapes {
@Override
public int[] getEscapeCodesForAscii() {
return super.standardAsciiEscapesForJSON();
}
@Override
public SerializableString getEscapeSequence(int ch) {
return new SerializedString(StringEscapeUtils.escapeJava(String
.valueOf((char) ch)));
}
}