一、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("集合有重复记录");
}
未完待续...