开发者社区 问答 正文

JSON如何转为Model??报错

@JFinal 你好,想跟你请教个问题:

 gson.toJson(Model,method.getGenericReturnType())  我利用gson将Model转为了json字符串,然后利用gson.fromJson(rsponse,method.getGenericReturnType()转了回来。但是,我访问model里面的get方法的时候总是报错,如:java.lang.Object cannot be cast to java.lang.Long 。我需要注意什么地方吗?

展开
收起
爱吃鱼的程序员 2020-06-09 16:15:16 856 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

     可能是gson在转换时类型没有处理好,建议使用jfinal官方提供的Jackson或者FastJson来处理,大至用法是:

    //Target对象转json字符串StringjsonStr=Jackson.getJson().toJson(target);//json字符串转Target对象Targett=Jsonson.getSjon().parse(jsonStr,Target.class);

     注意引入相关的包,要引入的包参考一下jfinal项目的pom.xml,去掉provide标签,另外要特别注意,json字符串转成对象,需要setter方法的支持,如果使用的是jfinal的model,可以用jfinal提供的generator生成带有setter方法的model

    谢谢,使用了 FastJson,现在可以了。 按照面向对象的规矩,
    操作这个object的方法应该要封装起来,
    单纯的JSONObject不能封装JAVA调用的函数,
    那自然是写个javabean用来封装了,
    JSONObject转成javabean就可以用了,具体操作参考: http://edu.51cto.com/course/course_id-4220.htmlspringmvc+restful直接传对象

    importcom.alibaba.fastjson.JSONObject;

    publicclassbean{

    publicstatic<T>TJsonToBean(StringJsonString,Class<T>clazz){

    return(T)JSONObject.toJavaObject(JSONObject.parseObject(JsonString),clazz);

    }

    }

    2020-06-09 16:15:33
    赞同 展开评论
问答分类:
问答地址: