我正在尝试将JSON文件转换为POJO(遵循Lombok(,然后使用POJO类检索JSON的属性。这是我的JSON文件:
{
"pickEventActivities": [
{
"orderId": "215",
"line": 3,
"pickByType": "EACH",
"pickGtin": "0007",
"pickedUser": "testUsr",
"activations": [
{
"activationType": "SERIAL",
"activationValue": "314561"
}
]
}
]
}
下面是POJO类,它包含pickEventActivities中的列表。
@Data
public class PickEvent {
@SerializedName("pickEventActivities")
@Expose
private List<PickEventActivity> mPickEventActivities;
}
其他类别包括:
public class Activation {
@SerializedName("activationType")
@Expose
private String mActivationType;
@SerializedName("activationValue")
@Expose
private String mActivationValue;
}
并遵循类名PickEvent Activity:
@Data
public class PickEventActivity {
@SerializedName("activations")
@Expose
private List<Activation> mActivations;
@Expose
@SerializedName("orderId")
private String mOrderId;
@Expose
@SerializedName("line")
private Long mLine;
@Expose
@SerializedName("pickByType")
private String mPickByType;
@SerializedName("pickGtin")
@Expose
private String mPickGtin;
@SerializedName("pickedUser")
@Expose
private String mPickedUser;
}
我称之为POJO的最后一堂课是:
public class AssertionPickEventActivity {
PickEvent pickEvent;
@Test
public void beforeTest() throws Exception {
ObjectMapper mapper = new ObjectMapper();
PickEvent pickEvent = mapper.readValue(new File("src/test/resources/json/pickEvent1.json"), PickEvent.class);
System.out.println(pickEvent);
}
}
我得到的错误是:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field
"pickEventActivities" (class picking.event.model.PickEvent), not marked as ignorable (one known property: "mpickEventActivities"])
任何帮助都将不胜感激。谢谢
您将GSON注释@SerializedName
和@Expose
与JacksonObjectMapper
混合使用。您应该使用@JsonProperty
注释,如下所示:
@Data
public class PickEvent {
@JsonProperty("pickEventActivities")
private List<PickEventActivity> mPickEventActivities;
}
您必须对所有其他类执行相同操作。