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转换???

参考技术A JSONObject.toBean( jsonObject, User.class ); 如果是我,我就会把birthday的类型设置为String类型,并且限定为“yyyy-MM-dd”的形式,然后写个工具

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日期类型的无法进行转换的主要内容,如果未能解决你的问题,请参考以下文章

JSONObject.toBean怎么转化带有Timestamp类型的对象

JSON 相关

web开发一些常遇到的问题汇总

JAVA利用反射映射JSON对象为JavaBean

如何在将jsonObject转换为模型对象时检测缺失的字段

无法使用类型的参数列表调用“jsonObject”