//这是把String强转对象的一个工具类 package com.ane.luban.web.controller.claims; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import java.io.IOException; import java.io.Serializable; import java.text.SimpleDateFormat; public class JsonHelp implements Serializable { private static final ObjectMapper objectMapper = new ObjectMapper(); private static boolean isPretty = false; public static String convertObjectToJson(Object obj) { String jsonString = ""; try { jsonString = objectMapper.writeValueAsString(obj); } catch (IOException e) { e.printStackTrace(); } return jsonString; } public static Object convertJsonToObject(String jsonString, Class<?> clazz) { if ((jsonString == null) || ("".equals(jsonString))) return null; try { return objectMapper.readValue(jsonString, clazz); } catch (IOException e) { e.printStackTrace(); } return null; } public static <T> T convertJsonToGenericObject(String jsonString, TypeReference<T> typeReference) { if ((jsonString == null) || ("".equals(jsonString))) { return null; } try { return objectMapper.readValue(jsonString, typeReference); } catch (Exception e) { e.printStackTrace(); } return null; } static { if (isPretty) { objectMapper.enable(SerializationFeature.INDENT_OUTPUT); } objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT); objectMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true); } }
//调用方式
SubmenuQuery query = (SubmenuQuery) JacksonHelper.convertJsonToObject(params, SubmenuQuery.class);// query为定义的对象,params为String值,注意String的值必须要与类定义的变量名一一对应不然强转会不成功
param必须要拼接成键值对;
例:
{"isChecked":0,"startTime":"2017-05-04 00:00:00","endTime":"2017-05-06 23:59:59","status":"0","arbType":"","claimsStatus":"2","arbDutyId":"","siteId":"","provinceId":"","page":0,"rows":50}
js拼接键值对:
var params = { isChecked: "1", startTime: "2012-11-11", endTime: "2012-11-13", status: 1, arbType: 114, claimsStatus: 1, arbDutyId: 354, siteId: 678, provinceId: 987 };//定义对象接收键值对
params = JSON.stringify(params); window.location = basePath+"submenuController/export?params="+encodeURI(params);//通过JSON中 stringify方法把params转成字符串类型
encodeURI
//该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码,这是为了解决param中非法字符的问题