list类型转换成json类型怎么转换啊。。。

adsj3sak3ks 2008-08-24 04:58:52
因为要有到的无刷新的功能,,,所以传过去的数据类型,选择用json类型。。。可是从数据库读取出来的数据是list类型,里面都是封装的是一个类的对象。。。不知道这个怎么给他转换成json类型比较好。。。
...全文
52486 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
renxianzuo 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 的回复:]

最后两行多此一举...fromObject一般都是静态方法,直接调用就行。
引用 31 楼 的回复:

List<User> users = new ArrayList<User>();
User user = new User();
user.setUname("b");
user.setPword("b");
user.setSex("b");
user.setAge(2)……
[/Quote]

调用已经有的库
yezong520 2012-10-19
  • 打赏
  • 举报
回复


import java.io.IOException;
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)));
}
}
木薯超人 2012-10-19
  • 打赏
  • 举报
回复
GSON把 方便
isea533 2012-10-16
  • 打赏
  • 举报
回复
最后两行多此一举...fromObject一般都是静态方法,直接调用就行。
[Quote=引用 31 楼 的回复:]

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……
[/Quote]
Char_CN 2012-10-16
  • 打赏
  • 举报
回复
不用jsonlib一样可以.自己写吧
reciment 2012-04-17
  • 打赏
  • 举报
回复
<B>路过</B>
老9 2012-04-17
  • 打赏
  • 举报
回复
List<Object> list = new List<Object>();
list.add(obj1);
list.add(obj2)
...
JSONArray json = new JSONArray();
json.addAll(list);
linshb85 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
后台:
List<Bean> list = new ArrayList<Bean>();
list.add(bean);
JSONObject json = JSONObject.forObject(list);
response.getWrite.print(json.toString());

前台得到bean中数据
首先是循环传过来的json数据,然后 bean.属性 就可以得……
[/Quote]
+1
tianxuan2008 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kokobox 的回复:]

比如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……
[/Quote]
ghtcool1207 2011-12-26
  • 打赏
  • 举报
回复
学习!学习!!求详解,本人初学,也正迷惑这一点呢!各位大虾帮帮忙,给个实例看看!本人邮箱ghtcool@sina.com,感激不尽!!加QQ聊也行!本人QQ1049549866!!谢谢!!
老9 2011-12-26
  • 打赏
  • 举报
回复
建议LZ到JSON官网上下载一个json的API,仔细的研究下,json功能很强大,你想要什么格式,完全可以自己去封装。
  • 打赏
  • 举报
回复
可以去找个现成的框架,json-lib,json-simple,等等,直接可以将list,map等转化成json,比自己写快,而且不会少个"}",":"什么,准确.
Derek-Chen 2011-12-26
  • 打赏
  • 举报
回复
有实现的jar包啊:
net.sf.json.JSONArray;
net.sf.json.JSONObject;

JSONArray a =JSONArray.fromObject(list);
System.out.println(a.toString());

可以参考参考一下。
酷乐之心 2011-12-26
  • 打赏
  • 举报
回复
大家说的都很好,
实在不行就按照json的格式拼呗,呵呵
Inn_lly 2011-12-15
  • 打赏
  • 举报
回复
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);
txenergy 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 quansheng2580 的回复:]
jdk5以上就可以
测试代码



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");……
[/Quote]
heroshen1988 2011-12-15
  • 打赏
  • 举报
回复
前来学习一下~~~正要用~
thb143 2011-12-15
  • 打赏
  • 举报
回复
从数据库直接生成json对象不更好么
No_Hello_World 2011-12-14
  • 打赏
  • 举报
回复
servlet中:
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++) {
//取出数据,做你想要的操作
}
});
有翅膀的猿 2011-12-14
  • 打赏
  • 举报
回复
JSONObject json=new JSONObject();
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());
加载更多回复(25)

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧