大连智能模板建站,做网站很累,直接翻译网页的软件,深圳网站建设toolcat前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 YAML是“另一种标记语言”的外语缩写,YAML 是一种比JSON#xff08;json多层次{ 与 [ 会被搞晕的#xff09;更直观的表现形式#xf… 前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 YAML是“另一种标记语言”的外语缩写,YAML 是一种比JSONjson多层次{ 与 [ 会被搞晕的更直观的表现形式展示上更易查错和关系描述。因为不需要一个专业工具就可以排查正确性。YAML目前有多种语言提供了支持。 JAVA最终是要被序列化或反序列化Jackson 提供了YAMLFactory.可以方便解析YAML并且可以无缝结合ObjectMapper.对原有系统改动最小。
Maven 引用以下包 dependencygroupIdcom.fasterxml.jackson.dataformat/groupIdartifactIdjackson-dataformat-yaml/artifactIdversion2.3.3/version
/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.3.3/version/dependency public class YmalFcT {2 3 private final YAMLFactory yamlFactory;4 private final ObjectMapper mapper;5 private final ClassT klass;6 7 public YmalFc(ClassT klass) {8 this.klass klass;9 this.yamlFactory new YAMLFactory();
10 this.mapper new ObjectMapper();
11 mapper.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
12
13 }
14
15 public T build(String path) throws IOException {
16 try {
17 InputStream input new FileInputStream(path);
18 YAMLParser yamlParser yamlFactory.createParser(input);
19 final JsonNode node mapper.readTree(yamlParser);
20 TreeTraversingParser treeTraversingParser new TreeTraversingParser(node);
21 final T config mapper.readValue(treeTraversingParser, klass);
22 return config;
23 } catch (Exception e) {
24 throw e;
25 }
26 }
27
28 public static void main(String[] args) {
29 Contact contact new Contact();
30 YmalFcContact ymalFc new YmalFcContact(Contact.class);
31 try {
32 contact ymalFc.build(new FileConfigurationSourceProvider(), contact.yml);
33 } catch (IOException e) {
34 e.printStackTrace();
35 }
36 }
37 }
public class Contact {2 JsonProperty3 public String name;4 JsonProperty5 public int age;6 7 public String getName() {8 return name;9 }
10 public void setName(String name) {
11 this.name name;
12 }
13 public int getAge() {
14 return age;
15 }
16 public void setAge(int age) {
17 this.age age;
18 }
19 }
YML文件 contact:name: Nathan Sweetage: 28
YML文件像Python 一样是一个需要注意空格缩进的语言。 原文见https://www.cnblogs.com/shouhongxiao/p/5803644.html 另补充
yml 文件 可以 这样定义复杂数据这样就能自动把上面的 name 和 age 填充到里面。 name: Nathan Sweet
age: 28
nameAndAge: name: ${name},age: ${age}