java把String强转对象

//这是把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中非法字符的问题

你可能感兴趣的:(java,一些常用方法)