jackson转换常用

一。json转list

精简版

 public List<RewardWeightConfig> getRewardWeightConfig() {
        try {
            if (StringUtils.isNotBlank(config)) {
                List<RewardWeightConfig> configs = JsonUtils.fromJson(config, new TypeReference<List<RewardWeightConfig>>() {
                });
                return configs;
            }
        } catch (Exception e) {
            log.error("获取奖励权重配置list error:{}", e);
        }
        return null;
    }
 String strCoin = "[{\"coin\":50,\"weight\":10},{\"coin\":100,\"weight\":10},{\"coin\":200,\"weight\":10}]";
        try {
            if (StringUtils.isNotBlank(strCoin)){
                ObjectMapper objectMapper = new ObjectMapper();
                JavaType jt = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, CoinWeightConfig.class);
                List<CoinWeightConfig> configs = objectMapper.readValue(strCoin, jt);  //1
                List<CoinWeightConfig> configs2 = objectMapper.readValue(strCoin, List.class); // 2
                System.out.println(12);
            }
        }catch (Exception e){
            log.error("获取金币权重配置list error:{}",e);
        }

1和2的不同 如果想转成对象需使用第一种
在这里插入图片描述
二。json转对象

 public BoxConfig getBoxConfig() {
        try {
            if (StringUtils.isNotBlank(config)){
                ObjectMapper objectMapper = new ObjectMapper();
                return objectMapper.readValue(config, BoxConfig.class);
            }
        }catch (Exception e){
            log.error("获取宝箱配置error:{}",e);
        }
        return null;
    }

三。对象转json

  ObjectMapper mapper = new ObjectMapper();
        mapper.writeValueAsString(new BoxConfig());

四。json字符串转Map

String expected = "{\"name\":\"Test\"}";
Map userMap = mapper.readValue(expected, Map.class);

五。json字符串转对象数组List

String expected="[{\"a\":12},{\"b\":23},{\"name\":\"Ryan\"}]";
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, User.class);
List<User> userList = mapper.readValue(expected, listType);

六。json字符串转Map数组List<Map<String,Object>>

String expected="[{\"a\":12},{\"b\":23},{\"name\":\"Ryan\"}]";
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, Map.class);
List<Map<String,Object>> userMapList = mapper.readValue(expected, listType);

七。jackson默认将对象转换为LinkedHashMap:

String expected = "[{\"name\":\"Ryan\"},{\"name\":\"Test\"},{\"name\":\"Leslie\"}]";
ArrayList arrayList = mapper.readValue(expected, ArrayList.class);

八。json字符串与list或map互转的方法

ObjectMapper objectMapper = new ObjectMapper();
 //遇到date按照这种格式转换
 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 objectMapper.setDateFormat(fmt);
 
  String preference = "{name:'侯勇'}";
        //json字符串转map
  Map<String, String> preferenceMap = new HashMap<String, String>();
  preferenceMap = objectMapper.readValue(preference, preferenceMap.getClass());
  
  //map转json字符串
  String result=objectMapper.writeValueAsString(preferenceMap);

九。bean转换为map

List<Map<String,String>> returnList=new ArrayList<Map<String,String>>();
List<Menu> menuList=menuDAOImpl.findByParentId(parentId);
ObjectMapper mapper = new ObjectMapper();
//用jackson将bean转换为map
returnList=mapper.convertValue(menuList,new TypeReference<List<Map<String, String>>>(){});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jackson 是一个功能强大的 JSON 转换工具,提供了许多实用的方法。以下是 Jackson 常用方法的一些示例: 1. 将 JSON 字符串转换Java 对象 使用 readValue() 方法将 JSON 字符串转换Java 对象。例如: ``` String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; ObjectMapper objectMapper = new ObjectMapper(); Person person = objectMapper.readValue(json, Person.class); ``` 2. 将 Java 对象转换为 JSON 字符串 使用 writeValueAsString() 方法将 Java 对象转换为 JSON 字符串。例如: ``` ObjectMapper objectMapper = new ObjectMapper(); Person person = new Person("John", 30, "New York"); String json = objectMapper.writeValueAsString(person); ``` 3. 将 JSON 字符串转换为 JsonNode 对象 使用 readTree() 方法将 JSON 字符串转换为 JsonNode 对象,可以使用 JsonNode 对象进行 JSON 树遍历。例如: ``` String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(json); ``` 4. 将 Java 对象转换为 JsonNode 对象 使用 valueToTree() 方法将 Java 对象转换为 JsonNode 对象。例如: ``` ObjectMapper objectMapper = new ObjectMapper(); Person person = new Person("John", 30, "New York"); JsonNode jsonNode = objectMapper.valueToTree(person); ``` 5. 将 Java 对象转换为 JSON 字符串并写入文件 使用 writeValue() 方法将 Java 对象转换为 JSON 字符串并写入文件。例如: ``` ObjectMapper objectMapper = new ObjectMapper(); Person person = new Person("John", 30, "New York"); File file = new File("person.json"); objectMapper.writeValue(file, person); ``` 这些方法只是 Jackson 提供的一小部分功能,如果您需要更多的功能,请查看 Jackson 的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值