前后端传递对象的方法
- //声明一个商品json对象,从表单中获取对应属性值 var product={}; product.productName=$(#product-name).val(); product.productDesc=$(#product-desc).val(); product.normalPrice=$(#normal-price).val(); product.promotionPrice=$(#promotion-price).val(); product.priority=$(#priority).val(); 前端js中声明一个json对象,用以获取html中表单中的数据。
- var formData=new FormData(); formData.append(productStr,JSON.stringify(product)) 将获取的表单数据以key-value的形式存入FormData对象中,等待传送。
- $.ajax({ url: productPostUrl, type:POST, data:formData, contentType:false, processData:false, cache:false, success:function (data) { if(data.success){ $.toast("成功!"); }else{ $.toast("失败 "+data.errMsg); } } }) 使用ajax传送数据
- ObjectMapper mapper=new ObjectMapper(); Product product=null; //前端将json变成String传递到后端,后端通过key取出value String productStr= HttpServletRequestUtil.getString(request,"productStr"); //尝试获取前端传过来的表单String流并将其转换为Product实体类 product = mapper.readValue(productStr,Product.class); 后端通过上图所示步骤将JSON字符串转化为Product实体类。
附:
-
ObjectMapper 是一个使用 Swift 语言编写的数据模型转换框架,我们可以方便的将模型对象转换为JSON,或者JSON生成相应的模型类 Github主页 在项目中使用到了ObjectMapper,故研究了一下。现将自己的几个测试用例和大家分享一下~ 首先在pom.xml文件中,加入依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version> </dependency>
