Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 奇怪格式文本的YAML解析问题_Java_Yaml_Jackson Dataformat Yaml - Fatal编程技术网

Java 奇怪格式文本的YAML解析问题

Java 奇怪格式文本的YAML解析问题,java,yaml,jackson-dataformat-yaml,Java,Yaml,Jackson Dataformat Yaml,我正在尝试解析一点yaml,但我不知道用yaml解析器读取它需要什么构造……我在这里对其进行了简化: name: Test User age: 30 address: /home/joe: post: summary: My summary 但不管我做什么,我都会得到这个 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type

我正在尝试解析一点yaml,但我不知道用yaml解析器读取它需要什么构造……我在这里对其进行了简化:

name: Test User
age: 30
address:
  /home/joe:
    post:
      summary:  My summary
但不管我做什么,我都会得到这个

com.fasterxml.jackson.databind.exc.MismatchedInputException: 
    Cannot deserialize value of type `java.lang.String` from Object value (token `JsonToken.START_OBJECT`)
 at [Source: (File); line: 5, column: 5] (through reference chain: User["address"]->java.util.LinkedHashMap["/home/joe"])
我似乎再也找不到像这样的例子了。我在测试程序中定义了以下变量类型:

private String name;
private int age;
private Map<String, String> address;

但是,一旦我按照实际文件中的方式缩进这些字段,我似乎无法理解解析它所需的结构。

因为在
/home/joe
下有缩进,它的值是一个对象,因此
address
属性必须是
Map
(或者使用更合适的子类型,例如带有摘要字符串字段的自定义Post类),并且在给定示例中大小为1


如果没有缩进,那么
地址
映射的大小将为3

似乎
映射
应该是
地址
的数据类型。或者您可以创建一组与该结构相对应的java类。谢谢,如果我将其放在主文件中,这确实有效。如果我使用空构造函数创建一个类,则变量和getter,我仍然得到相同的错误。我能够为另一个这样的类创建一个只包含字符串的类,但是使用像Map这样的类型是否需要类中的其他内容?我可以使用主文件,但我要为每个类型创建子类。如果您已经定义了,通常建议使用特定的类每个类型的d字段,而不是映射,是的,在类中还需要什么?我在主文件中添加了相同的内容…不确定为什么单独的类不起作用:(我不确定“主文件”是什么意思。在哪里定义类(相同的文件或不同的文件)matterAs没有提到,如果你定义了字段,你应该总共有4个类。你可以在这里上传你的yaml来为你生成它
name: Test User
age: 30
address:
  /home/joe:
  post:
  summary:  My summary