欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gson将json对象转化为java对象

程序员文章站 2022-07-12 15:18:21
...

之前我们总是习惯将前端的字段一个一个传给后台,但是当字段特别多的时候,这就特别不方便。近期接触到了gson,非常好用的一个工具。

gson使用的整体思路是:

1.前端构造一个json对象,注意:这个对象的每个字段要和java类中的字段名一样,通过如下方式将其构造成一个json对象。

order.name = $("#name").val();
order.totalPrice = $("#totalPrice").val();
order.desc = $("#desc").val();
order.date = $("#date").val();
var str = JSON.stringify(order);

2.用gson将前端传过来的json对象转化为java对象,如下,我们就成功地将json对象obj转化为了java对象orderForm。

 

        //将json转化为object
		Gson gson = new Gson();
		OrderForm orderForm = gson.fromJson(obj, OrderForm.class);
		Order order = new Order();
		order.setName(orderForm.getName());
		order.setDesc(orderForm.getDesc());
		if(!StringUtils.isEmpty(orderForm.getTotalPrice())){
			order.setTotalPrice(Double.parseDouble(orderForm.getTotalPrice()));
		}
		if (!StringUtils.isEmpty(orderForm.getDate())) {
			Date date = null;
			try {
				date = DateUtil.date(orderForm.getDate());
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			order.setDate(date);
		}
		orderService.insert(order);

注意事项:

这里主要讲几个注意事项,能够帮助你更好地使用gson。

1.gson支持Integer和String类型,不支持特殊类型如:Date,Double等等。如上,我们的对象是一个order(订单),订单里面有金额,日期,这肯定不是string类型的,如果我们将其定义为浮点数和日期类型,那个json转化为java对象会失败。所以在json---->Order的过程中,我们使用了中间对象OrderForm(所有字段都为Integer或String),使得转化过程为json--->OrderForm---->Order。

2.注意事项1我们说到gson支持Integer和String类型。其中对于Integer类型的字段,如果前端没有值的话,就不要传该字段否则后台转换时会报empty string错误。

 

 

上一篇: Aha awk!

下一篇: Awk学习笔记