Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 Jackson:父类属性被忽略:将json反序列化为数据_Java_Json_Jackson - Fatal编程技术网

Java Jackson:父类属性被忽略:将json反序列化为数据

Java Jackson:父类属性被忽略:将json反序列化为数据,java,json,jackson,Java,Json,Jackson,我正在尝试将JSON(myJson.JSON)对象转换为Java类 使用以下代码 但是上面的ObjectMapper无法将父类(StudentDTO)映射到类属性(loggedInUser、createdBy等)。 是否有可以映射父类属性的@注释 欢迎提出任何建议 我有以下内容-StudentInfoDTO、AddressDTO、StudentDTO、skillsdo和myJson.json 学生信息发送至: public class StudentInfoDTO extends Student

我正在尝试将JSON(myJson.JSON)对象转换为Java类

使用以下代码

但是上面的
ObjectMapper
无法将父类(StudentDTO)映射到类属性(loggedInUser、createdBy等)。

是否有可以映射父类属性的
@注释

欢迎提出任何建议

我有以下内容-StudentInfoDTO、AddressDTO、StudentDTO、skillsdo和myJson.json

学生信息发送至:

public class StudentInfoDTO extends StudentDTO implements Serializable{
private static final long serialVersionUID = 1L;
private AddressDTO address;
private String studentName;
....getters and setters

}
 public class AddressDTO implements Serializable{
    private static final long serialVersionUID = 1L;
    private String street;
    private String city;
    private String state;
    private String country;
    private Long zipcode;
    ....getters and setters

    }
 public class StudentDTO implements Serializable{
    private static final long serialVersionUID = 1L;
    private String loggedInUser;
    private String createdBy;
    private Date createdTs;
    private String updatedBy;
    private Date updatedTs;
    private List<skillsDTO> skills;
    ....getters and setters

    }
地址到:

public class StudentInfoDTO extends StudentDTO implements Serializable{
private static final long serialVersionUID = 1L;
private AddressDTO address;
private String studentName;
....getters and setters

}
 public class AddressDTO implements Serializable{
    private static final long serialVersionUID = 1L;
    private String street;
    private String city;
    private String state;
    private String country;
    private Long zipcode;
    ....getters and setters

    }
 public class StudentDTO implements Serializable{
    private static final long serialVersionUID = 1L;
    private String loggedInUser;
    private String createdBy;
    private Date createdTs;
    private String updatedBy;
    private Date updatedTs;
    private List<skillsDTO> skills;
    ....getters and setters

    }
学生收件人:

public class StudentInfoDTO extends StudentDTO implements Serializable{
private static final long serialVersionUID = 1L;
private AddressDTO address;
private String studentName;
....getters and setters

}
 public class AddressDTO implements Serializable{
    private static final long serialVersionUID = 1L;
    private String street;
    private String city;
    private String state;
    private String country;
    private Long zipcode;
    ....getters and setters

    }
 public class StudentDTO implements Serializable{
    private static final long serialVersionUID = 1L;
    private String loggedInUser;
    private String createdBy;
    private Date createdTs;
    private String updatedBy;
    private Date updatedTs;
    private List<skillsDTO> skills;
    ....getters and setters

    }
我的错误日志:

03:29:03,132 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "loggedInUser" (Class com.mySchool.project.services.StudentInfoDTO), not marked as ignorable
03:29:03,133 ERROR [stderr] (http-localhost-127.0.0.1-8080-2)  at [Source: c:\myJson.json; line: 51, column: 23] (through reference chain: com.mySchool.project.services.StudentInfoDTO["address"]->com.mySchool.project.services.StudentInfoDTO["loggedInUser"])

03:29:03,133 ERROR [stderr] (http-localhost-127.0.0.1-8080-2)   at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53)

03:29:03,134 ERROR [stderr] (http-localhost-127.0.0.1-8080-2)   at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:246)

很抱歉给您带来不便

它像预期的那样工作。 我的
myJson.json
文件中有一个错误,我按照
@Vishvesh Phadnis
的建议重新生成了getter和setter

{
   "address": 
      {
        "street": "Hunterfly Place",
        "city": "Dunlo",
        "state": "Arizona",
        "country": "Colorado",
        "zipcode": "1631"
      },
    "studentName": "John",

    "loggedInUser": "Admin",
    "createdBy": "System",
    "createdTs": "03-19-2011 14:53",
    "updatedBy": "John",
    "updatedTs": "06-11-2014 08:00",
    "skills": [
        {
            "skill": "Football",
            "grade": "A"
        },
        {
            "skill": "Swimming",
            "grade": "C"
        },
        {
            "skill": "Dance",
            "grade": "A"
        }]

    }

谢谢大家:)

您正在使用哪个库版本?我没有面临任何问题。@VishveshPhadnis这是我在pom.xml
org.codehaus.jackson-jackson映射器asl 1.8.5中的内容。
@VishveshPhadnis我与JDK1.7、Jboss 7.1.1和jackson 1.8.5一起使用。我认为您没有为所有类添加正确的getter和setter。请交叉检查。特别是在
StudentDTO
class@VishveshPhadnis我有能手和二传手