0

假设我有一个需要传递的格式如下的文件

Name: XYZ
 SSN: 123

Name: ABC
 SSN: 456

假设我已经创建了以下类

Class Data{
 String name;
 int ssn;
 }

现在我需要解析上面的文件,并且对于每个条目,我需要创建一个数据类型的对象。如何在 Java 中使用snakeyaml?

4

2 回答 2

1

长话短说,我无法让它与 SnakeYaml 一起使用,但我可以让它与 YamlBeans 一起使用。这是 YAML 文档的样子(在修复了我之前回答的错误之后):

-
  name: XYZ
  ssn: 123
-
  name: ABC
  ssn: 456

这是来源:

import java.io.FileNotFoundException;
import java.io.FileReader;

import com.esotericsoftware.yamlbeans.YamlException;
import com.esotericsoftware.yamlbeans.YamlReader;

public class ArraySpike
{
    public static void main(String[] args) throws FileNotFoundException, YamlException
    {
        System.out.println("Parsing " + args[0] + " ...\n");

        YamlReader reader = new YamlReader(new FileReader(args[0]));

        Data[] dArray = reader.read(Data[].class);

        for (Data d: dArray)
        {
            System.out.println("name: " + d.name);
            System.out.println("ssn: " + d.ssn + "\n");
        }

    }
}

根据我之前的评论,我将“数据”类更改为适当的 bean。

于 2013-04-26T23:44:19.913 回答
0

我自己是 YAML 和 SnakeYaml 的新手,但我注意到的第一件事是您的“类”类不是 Java Bean。您需要为“name”和“ssn”创建 getter 和 setter。我注意到的第二件事是您的班级成员的姓名和您的 YAML 文档中的信息不一致(“姓名”与“姓名”,“SSN”与“ssn”)。最后,YAML 文档中“SSN”之前的空格会导致问题。

于 2013-04-25T18:49:40.577 回答