场景:
Json的字符串转对象,并且字符串的的属性是下划线,对象的属性是驼峰 ,用在对象中设置属性的方法实现。
方法:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class JsonUtils {
/**
* 下划线转驼峰
* @param json
* @param clazz
* @return
* @param <T>
* @throws Exception
*/
public static <T> T underscoreToCamelCaseJson(String json, Class<T> clazz) throws Exception {
ObjectMapper mapper = new ObjectMapper();
// 先将JSON字符串反序列化为JsonNode
JsonNode rootNode = mapper.readTree(json);
// 深度拷贝JsonNode,避免直接修改导致的ConcurrentModificationException
ObjectNode newNode = mapper.createObjectNode();
Map<String, JsonNode> updates = new HashMap<>();