JSONObject 调用toBean方法时Date日期类型的无法进行转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSONObject 调用toBean方法时Date日期类型的无法进行转换相关的知识,希望对你有一定的参考价值。
Java代码:
String acLogInfo = new String(request.getParameter("AcLogInfo")
.getBytes("iso-8859-1"),"utf-8");
acLogInfo = "'IAcEventtype':1,'IAcDoorio':0,'ICardId':0,'IAcDoorzone':1,'IAcControlid':'','SAcDoorname':'1','DAcIodate':'2011-09-16 14:26:55',"+
"'TAcIotime':'2011-09-16 14:26:56','SHostId':'','SLinkHostid':'','ILinkChannelid':'','ILinkRec':'','ILinkCatchpic':'','ILinkRecmode':'','ILinkcatchpicmode':'','IUserId':''";
if (acLogInfo == null)
Logger.error("AcLogInfo == null");
out.print(JSONObject.fromObject(null));
return;
JSONObject jo = JSONObject.fromObject(acLogInfo);
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"));
TabAcLog tabAcLogBean = (TabAcLog) jo.toBean(jo, TabAcLog.class);
在以上代码中DAcIodate的hibernate映射为Date类型,通过断点查看发现toBean后时间显示为Sun Sep 18 21:13:27 CST 2011(系统时间);TAcIotime的hibernate映射为String类型,通过断点查看发现toBean后时间显示2011-09-16 14:26:56(正确的进行了转换)。我想知道怎样才能把Date类型的时间也进行正确的toBean转换???
map和jsonObject 这2中数据结构之间转换
前台写json直接是:var array = [ ] ;
调用方法:array[index],若是对象,再[“key”]
var obj = {\'\'a\'\':123 , "b":"hello" , "c": array}
调用方法:obj.a 或者 obj["a"]
直接就是var啊
var str = " {\'\'a\'\':123 , "b":"hello" , "c": array}" str就没那么多方法
**************************************************
1 import java.util.LinkedList; 2 import java.util.*; 3 import java.util.ListIterator; 4 5 import net.sf.json.JSONArray; 6 import net.sf.json.JSONObject; 7 8 9 public class a11111111 { 10 public static void main(String[] args){ 11 12 JSONObject json=new JSONObject(); 13 json.put("name", "小明"); 14 json.put("age", "10"); 15 //输出json是:{"name":"小明","age":"10"} 16 //json是一个实实在在数据结构,可以有这些方法json.isEmpty() 17 //若是:字符串就没这么多的方法 18 19 JSONArray ja=new JSONArray(); 20 ja.add("1"); 21 ja.add("2"); 22 ja.add("3"); 23 ja.add(3,json); 24 //["1","2","3",{"name":"小明","age":"10"}] 25 System.out.println(ja.toString()); 26 System.out.println(ja.get(3)); 27 // {"name":"小明","age":"10"} 点出来的是一个字符串,不是数据结构 28 //System.out.println(ja.get(3).get("age"));点不出get方法,ja.get(3).这个点点出来的方法都是一些所有的都有方法 29 String str = (String)ja.get(3); //str能接收这个字符串 30 31 32 /*ja.get(3)实质是表示的是字符串表示*/ 33 //现在ja是一个字符串,解析成上面那个结构 34 JSONObject jsonObject = JSONObject.fromObject(ja.get(3)); 35 System.out.println(jsonObject.get("age")); //获得10 36 37 HashMap<String, Object> data = new HashMap<String, Object>(); 38 Iterator it = jsonObject.keys(); 39 // 遍历jsonObject数据,添加到Map对象 40 while (it.hasNext()) 41 { 42 String key = String.valueOf(it.next()); 43 String value = (String) jsonObject.get(key); 44 data.put(key, value); 45 } 46 System.out.println(data); 47 // {name=小明, age=10} 48 } 50 } 51 52 // {name=小明, age=10} map数据结构长成这样 53 // {"name":"小明","age":"10"} JSONObject 数据结构长成这样
————————————————————————
从map - json对象 - json字符 1 public class a11111111 {
2 public static void main(String[] args) { 3 Map map = new HashMap(); 4 map.put("msg", "yes");//map里面装有yes 5 JSONObject jsonObject = JSONObject.fromObject(map);
//和上面复用同一段代码, 6 System.out.println("输出的结果是:" + jsonObject); 7 //3、将json对象转化为json字符串 8 String result = jsonObject.toString(); 9 System.out.println(result); 10 } 11 /*输出的结果是:{"msg":"yes"}*/ 12 // {"msg":"yes"} 长的一样:但上面那个是数据结构(JSONobject),下面那个是字符串 13 // java中数据结构可以直接按名输出,也可以数据结构名.toString输出
// 上面那个可以调用很多方法-下面那个仅仅是个字符串没那么多方法
14 }
JSONObject jsonObject = JSONObject.fromObject
以上是关于JSONObject 调用toBean方法时Date日期类型的无法进行转换的主要内容,如果未能解决你的问题,请参考以下文章