json

下划线驼峰转化问题

代码方式

ObjectMapper mapper = new ObjectMapper();
       mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
// params是任意Object
String json = mapper.writeValueAsString(params);

注解方式

对象按指定名称接受(不受转化影响)
加在属性上

@JsonProperty("paymentAmt")

map转T泛型对象

阿里的 jackson com.fasterxml.jackson.databind.ObjectMapper可以
任意对象都可以转

convertValue(Object fromValue, Class toValueType)

json转对象(java)

代码方式

hutool的工具类

JSONUtil.toBean(respStr, DingfuResult.class);

注解方式

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
类上加此注解,类的属性找不到json对象的属性时,可防止报错

对象转Map(一层,无法递归)

  /**
     * 将对象转换为 Map(只支持一层,无法递归对子孙属性转换)
     * @param obj
     * @return
     */
    public static Map<String, String> object2Map(Object obj) {
        Map<String, String> map = new HashMap<>();
        Class<?> objClass = obj.getClass();

        // 获取对象的所有字段
        Field[] fields = objClass.getDeclaredFields();

        for (Field field : fields) {
            field.setAccessible(true); // 允许访问私有字段

            try {
                // 获取字段名
                String fieldName = field.getName();
                // 获取字段值,并转换为字符串
                String fieldValue = field.get(obj).toString();

                // 将字段名和字段值添加到Map中
                map.put(fieldName, fieldValue);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return map;
    }
posted @ 2023-05-04 17:51  jf666new  阅读(20)  评论(0)    收藏  举报