json字符串转换成javaBean中的Timestamp类型

zqb328942291 2013-03-11 05:39:38
我将javaBean的Timestamp类型转换成了String 类似:[{"time":"2013-03-11 11:24:23 000"}]这种类型,但是如何将该类型再转换回Timestamp类型呢?因为我需要将此json字符串再转成javaBean,而javaBean中该属性的类型为Timestamp。(我用的是json-lib.jar)
...全文
611 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨中的看客 2013-03-19
  • 打赏
  • 举报
回复
标记,正好要用!
  • 打赏
  • 举报
回复
你用什么json解析的包就自己实现该包的反序列化就可以了
a597926661 2013-03-12
  • 打赏
  • 举报
回复
楼上的方法显然是不行的 split的参数就是不合理的 而且那样切割不是我们的本意 json处理我也不是很熟练 下面的代码是用的json-lib里的方法 比较忙没测试 楼主可以试一下

String as = "[{name='zhangsan',time='2012-11-01 12:20:23'},{name='zhangsan2',time='2012-11-01 12:20:23'}]";
		try {
			JSONArray ja = new JSONArray(as);//json-lib包里的方法 别引成gson的了
				TestBean tc = new TestBean();	
				tc = gson.fromJson(ja.getString(0), TestBean.class);
				System.out.println(tb.name);
				System.out.println(tb.time);
		} catch (Exception e) {
			e.printStackTrace();
		}
  • 打赏
  • 举报
回复
引用 4 楼 zqb328942291 的回复:
引用 3 楼 a597926661 的回复:楼主 对json的处理有一个很好用的jar包 叫 gson包 我给楼主上一段代码楼主就知道怎么用了 很简单的 Java code?12345678910111213141516171819import java.sql.Timestamp; public class TestBean { public Stri……
String a = "[{name='zhangsan',time='2012-11-01 12:20:23'},{name='zhangsan2',time='2012-11-01 12:20:23'}]"; String[] sarray=a.split(","); for(int i=0; i<sarray.length; i++){ JSONObject jai=JSONObject.fromObject(sarray[i]); //再将jSONObject转为bean就行了。 } }
zqb328942291 2013-03-12
  • 打赏
  • 举报
回复
引用 3 楼 a597926661 的回复:
楼主 对json的处理有一个很好用的jar包 叫 gson包 我给楼主上一段代码楼主就知道怎么用了 很简单的 Java code?12345678910111213141516171819import java.sql.Timestamp; public class TestBean { public String name; public Tim……
刚才试了~确实是可以的,但是时间没法精确到毫秒,不过这个不是重点,我如果有多个对象呢?就是json数据里面包含了多个相同的对象。类似:String a = "[{name='zhangsan',time='2012-11-01 12:20:23'},{name='zhangsan2',time='2012-11-01 12:20:23'}]";如何转换成javaBean
a597926661 2013-03-12
  • 打赏
  • 举报
回复
楼主 对json的处理有一个很好用的jar包 叫 gson包 我给楼主上一段代码楼主就知道怎么用了 很简单的

import java.sql.Timestamp;

public class TestBean {
	
	public String name;
	public Timestamp time;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Timestamp getTime() {
		return time;
	}
	public void setTime(Timestamp time) {
		this.time = time;
	}
}

public static void testGson(){
		String a = "{name='zhangsan',time='2012-11-01 12:20:23'}";
		Gson gson = new Gson();
		TestBean tb = new TestBean();	
		tb = gson.fromJson(a, TestBean.class);
		System.out.println(tb.name);
		System.out.println(tb.time);
	}
这样gson包可以自动处理为你需要的数据类型 这个包百度就能搜到 一会我上传到我的资源里 楼主可以去下载
dosgege 2013-03-12
  • 打赏
  • 举报
回复
import java.io.*; import org.json.*; public class Demo { public static void main(String[] args) throws Exception { String str = "[{"time":"2013-03-11 11:24:23 000"}]"; JSONArray a = new JSONArray(str); System.out.println(a); //[{"time":"2013-03-11 11:24:23 000"}] System.out.println(a.get(0)); // {"time":"2013-03-11 11:24:23 000"} System.out.println(a.get(0).get("time")); // "2013-03-11 11:24:23 000" } } 取到time字符串后用date转换成你要的time类型
zqb328942291 2013-03-12
  • 打赏
  • 举报
回复
引用 6 楼 a597926661 的回复:
楼上的方法显然是不行的 split的参数就是不合理的 而且那样切割不是我们的本意 json处理我也不是很熟练 下面的代码是用的json-lib里的方法 比较忙没测试 楼主可以试一下 Java code?12345678910String as = "[{name='zhangsan',time='2012-11-01 12:20:23'},{name='zhangsan……
我自己试了~没用你给的方法,我用的是
JavaBean[] beans=gson.fromJson(jsonStr,JavaBean[].class)
结果很好用
zqb328942291 2013-03-11
  • 打赏
  • 举报
回复
自己顶一个!!我试过用了 JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] { "yyyy-MM-dd" })); Collection<JsonBean> list = JSONArray.toCollection(JSONArray.fromObject(jsonStr), JsonBean.class); for (JsonBean o : list) { System.out.println(DateUtil.getFormatDate(o.getBorn(), "yyyy-MM-dd")); } 这种方式也是报异常说set参数的时候发现了String 而应该是Timestamp

81,092

社区成员

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

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