从JSON创建POJO,并使用POJO类检索属性

  • 本文关键字:POJO 检索 属性 JSON 创建 java json
  • 更新时间 :
  • 英文 :


我正在尝试将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;
}

您必须对所有其他类执行相同操作。

最新更新