jQuery MiniUI

 找回密码
 立即注册
查看: 4356|回复: 8
打印 上一主题 下一主题

表单提交,后台报错java.text.ParseException: Unparseable date: "contecte [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-8-2 10:15:02 |只看该作者 |倒序浏览
我做了一个简单的新增功能,涉及到的表只有一个张,但是页面的$.ajax()将表单数据提交到后台,获得的json数据如下:
[{"id":"","name":"rr","address":"ee","postcode":"ww","email":"dd","contecter":"qq","tel":"ff"}]
所有字段都没有校验,都是字符串类型,但是在使用ArrayList rows = (ArrayList)JSONUtils.Decode(json);时,抛出异常:
Caused by: java.text.ParseException: Unparseable date: "contecter"


请大神帮忙支招

Rank: 8Rank: 8

沙发
发表于 2013-8-2 11:20:16 |只看该作者

Rank: 2

板凳
发表于 2013-8-2 11:35:08 |只看该作者
factory 发表于 2013-8-2 11:20
你看下这个文章:
http://www.cnblogs.com/mabaishui/archive/2010/08/27/1810290.html

您好,非常感谢您的解答
但是在我提交的字段中根本就没有date类型的数据,全部是String类型的,我不明白的是你们的demo中JSON.java这个类的方法Decode()中要有如下代码:
deserializer.use(String.class, new DateTransformer("yyyy-MM-dd'T'HH:mm:ss"));
为什么要把所有的String.class都解析为Date格式,这样我传递一个字符串进来就会抛出异常了

Rank: 9Rank: 9Rank: 9

地板
发表于 2013-8-2 15:37:34 |只看该作者
这个只是判断某种格式的字符串,转换为date。
应该不影响你的,你也可以自己找一个JSON序列化组件来做。

Rank: 1

5#
发表于 2013-8-2 16:50:29 |只看该作者
我通常是自己写一个方法来装入对象参考代码
//        把json数据转换成java对象仅支持 属性是String ,int ,Intgeter,float,Float,double,Double,java.sql.Date,java.util.Date的java对象
        public static void jsonParamToObject(HttpServletRequest request ,Object object,String beanName){
                Class c=object.getClass();
                Enumeration enu=request.getParameterNames();
                Object o=null;
                String fieldName=null;
                String attr[]=null;
                Field field=null;
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
                while(enu.hasMoreElements()){
                        o=enu.nextElement();
                        try{
                                if(String.class.equals( o.getClass())&&o.toString().indexOf(beanName)==0){
                                        fieldName=o.toString();
                                        attr=fieldName.split("\\[");
                                        if(attr.length<=1)continue;
                                        fieldName=attr[attr.length-1].replaceAll("]", "");
                                        field=c.getDeclaredField(fieldName);
                                        field.setAccessible(true);
                                        if(String.class.equals(field.getType()))field.set(object, request.getParameter(o.toString()));
                                        else if(Integer.class.equals(field.getType())||int.class.equals(field.getType()))field.set(object, Integer.parseInt(request.getParameter(o.toString()).toString()));
                                        else if(Float.class.equals(field.getType())||float.class.equals(field.getType()))field.set(object, Float.parseFloat(request.getParameter(o.toString()).toString()));
                                        else if(Double.class.equals(field.getType())||double.class.equals(field.getType()))field.set(object, Double.parseDouble(request.getParameter(o.toString()).toString()));
                                        else if(Date.class.equals(field.getType())){
                                                Date jsd=new Date(sdf.parse(request.getParameter(o.toString()).toString()).getTime());
                                                field.set(object,jsd);
                                        }else if(java.util.Date.class.equals(field.getType())){
                                                java.util.Date jud=sdf.parse(request.getParameter(o.toString()).toString());
                                                field.set(object,jud);
                                        }
                                }
                        }catch (Exception e) {
                                System.out.println("\n--"+60);
                               
                        }
               
                }
        }

Rank: 1

6#
发表于 2013-8-2 16:51:46 |只看该作者
自己写对于自己的项目适合很好,但是对于其他的就会有一定的局限性

Rank: 2

7#
发表于 2013-8-2 17:18:29 |只看该作者
卢桂福 发表于 2013-8-2 16:50
我通常是自己写一个方法来装入对象参考代码
//        把json数据转换成java对象仅支持 属性是String ,int ,Intget ...

大牛啊,顶礼膜拜中……

Rank: 1

8#
发表于 2013-8-2 20:05:13 |只看该作者
ykz252611 发表于 2013-8-2 17:18
大牛啊,顶礼膜拜中……

= =我那是什么大牛,码农炮灰都算不上,还未毕业,正找工作,现在工作好难找啊

Rank: 9Rank: 9Rank: 9

9#
发表于 2013-8-3 21:52:18 |只看该作者
请参考json.java,我们提供的json序列化组件,应该能通用处理对象

Archiver|普加软件

GMT+8, 2024-9-29 07:18 , Processed in 1.031558 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部