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;
}

浙公网安备 33010602011771号