java工具库类,减少开发代码量(二)

一、Jackson之ObjectMapper

Jackson ObjectMapper可以从字符串、流或文件解析JSON,并创建Java对象或对象图来表示已解析的JSON。将JSON解析为Java对象也称为从JSON反序列化Java对象
Jackson ObjectMapper也可以从Java对象创建JSON. 从Java对象生成JSON的过程也被称为序列化Java对象到JSON
特点:Jackson对象映射器(Object Mapper)可以把JSON解析为用户自定义类对象, 或者解析为JSON内置的树模型的对象

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.9.6</version>
</dependency>
 
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <version>2.9.6</version>
</dependency>
 
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.9.6</version>
</dependency>
     User user = new User();
        user.setAge(18);
        user.setName("lisi");
        user.setSex("女");
        ObjectMapper objectMapper = new ObjectMapper();
        // 对象转 json
        String json = objectMapper.writeValueAsString(user);
        System.out.println(json);
        // json 转对象
        try {
            User user1 = objectMapper.readValue(json, User.class);
            System.out.println("age = " + user1.getAge());
            System.out.println("name = " + user1.getName());
        } catch (IOException e) {
            e.printStackTrace();
        }

补充:String Json 转 JSONObject

import com.alibaba.fastjson.JSONObject;

String jsonString = "{\"name\": \"John Doe\", \"age\": 30, \"city\": \"New York\"}";
SONObject jsonObject = JSONObject.parseObject(jsonString);
System.out.println(jsonObject.get("name"));

 二、String.format()

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。类似C语言的sprintf()方法,配合转换符使用。

连接功能:

        int one = 123;
        double two = 123.789;
        String s = String.format("第一个参数:%,d 第二个参数:%,.2f", one, two);
        System.out.println(s);
        //第一个参数:123 第二个参数:123.79

将-1000显示为(1,000):

        int num = -1000;
        String str = String.format("%(,d", num);
        System.out.println(str); //(1,000)

三、nameUUIDFromBytes(byte[] name)

用作静态工厂,返回一个从指定数组生成的 UUID。

        // 创建构造 UUID 的字节数组。
        byte[] nbyte = {1,2,3};
        // 生成uuid
        UUID uid = UUID.nameUUIDFromBytes(nbyte);
        System.out.println("UUID value from byte:"+uid);
UUID value from byte:5289df73-7df5-3326-bcdd-22597afb1fac

4. StringUtils.join

将数组或集合以某拼接符拼接到一起形成新的字符串。

        // 集合拼接
        List<String> names = new ArrayList<>();
        names.add("zhangsan");
        names.add("lishi");
        names.add("minghu");
        System.out.println(StringUtils.join(names, ","));
        // 数组拼接
        String[] product = new String[]{"周一", "周六", "周日"};
        System.out.println(StringUtils.join(product,"-"));
zhangsan,lishi,minghu
周一-周六-周日

5. 优雅的判断集合是否有重复记录

        List<String> names = new ArrayList<>();
        names.add("zhangsan");
        names.add("lishi");
        names.add("minghu");
        names.add("lishi");
        if(names.size() > new HashSet(names).size()){
            System.out.println("集合有重复记录");
        }

未完待续... 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值