yaml转成json的结果对比
{ str: '这是一行字符串', str2: '内容: 字符串', str3: '内容\n字符串', str4: '内容n字符串', str5: 'labor's day', str6: '这是一段 多行 字符串', str7: 'FoonBarn', str8: 'Foo Barn', str9: 'Foon', str10: 'Foonn', str11: 'Foo', str12: '<p style="color: red">n 段落n</p>n', int: 10, float: 9.99, bool: true, date: Sun Aug 23 2015 08:00:00 GMT+0800 (CST), datetime: '2015-08-23T02:02:00.1z', iso8601: Mon Aug 24 2015 10:59:43 GMT+0800 (CST), spaced: Mon Aug 24 2015 10:59:43 GMT+0800 (CST), obj: { field1: 'x', field2: { field21: 'xx', field22: 'xxx' } }, obj2: { field1: 'x', field2: { field21: 'xx', field22: 'xxx' } }, array: [ 'ele1', 'ele2', [ 'ele31', 'ele32' ] ], array2: [ 'ele1', 'ele2', [ 'ele31', 'ele32' ] ], array3:[ { field1: 'x', field2: 'xx', field3: 'xxx' }, { field1: 'x', field2: 'xx', field3: 'xxx' } ], set: { ele: null, ele2: null }, nested:{ field1: 'x', arr:[ { field1: 'x', field2: 'x', field3: [ 1, 2, 3 ] }, { field1: 'x', field2: 'x', field3: [ 2, 3, 4 ] } ], arr2: [ [ 'a', 'b' ], [ 'c', 'c' ] ] }, test: '123', '?[blue, reg, green]': 'xxx', '?{a:xx, b:xx}': 'xx', ref: [ 'a', 'b', 'a' ] }Java解析引入依赖
<!-- https://mvnrepository.com/artifact/org.yaml/snakeyaml --><dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.20</version></dependency>实体类
public class Address { private Long id; private String address;}public class UserInfo { private Long userId; private String username;}public class User { private Long id; private String name; private Integer age; private Date birthday; private float height; private double score; private boolean isVip; private String[] hobbies; private List<Address> addresses; private UserInfo userInfo;}测试
public static void main(String[] args) throws Exception { UserInfo userInfo = new UserInfo(1L, "xiaoming"); Address address = new Address(1L, "上海市浦东新区"); Address address2 = new Address(2L, "北京市朝阳区"); List<Address> addresses = new ArrayList<Address>(); addresses.add(address); addresses.add(address2); User user = new User(1L, "小明", 20, new Date(), 178.88f, 99999.99, true, new String[]{"eat", "drink", "play", "happy"}, addresses, userInfo); Yaml yaml = new Yaml(); // 写入文件 yaml.dump(user, new FileWriter("/Users/mengday/Desktop/user.yml")); // 从文件中读 User user1 = yaml.loadAs(new FileInputStream(new File("/Users/mengday/Desktop/user.yml")), User.class); System.out.println(user1.toString());}结果
!!com.example.demo.Useraddresses:- {address: 上海市浦东新区, id: 1}- {address: 北京市朝阳区, id: 2}age: 20birthday: 2018-03-13T09:30:38.586Zheight: 178.88hobbies: [eat, drink, play, happy]id: 1name: 小明score: 99999.99userInfo: {userId: 1, username: xiaoming}vip: trueUser{id=1, name=’小明’, age=20, birthday=Tue Mar 13 17:30:38 CST 2018, height=178.88, score=99999.99, isVip=true, hobbies=[eat, drink, play, happy], addresses=[Address{id=1, address=’上海市浦东新区’}, Address{id=2, address=’北京市朝阳区’}], userInfo=UserInfo{userId=1, username=’xiaoming’}}
推荐阅读
- 超全、超详的Spring Boot配置讲解笔记
- Spring Boot集成极光推送Java-SDK
- 全面解析下Spring Boot操作Redis的几种方案
- springcloud详解
- 手机刷机,要弄清楚recovery和Fastboot是干什么的,建议收藏
- 全面而且简洁介绍SpringCloud微服务
- 如何读取yaml,json,ini等配置文件
- SpringBoot事物Transaction实战讲解教程
- Spring框架是怎么样通过properties来获得对象的?
- SpringBoot 深度调优,让你的项目飞起来