Java 对象列表的JSON数组:UnrecognizedPropertyException

Java 对象列表的JSON数组:UnrecognizedPropertyException,java,json,jackson,Java,Json,Jackson,我找不到以下数组json字符串的错误位置。我不确定我的映射是否正确。我希望朋友能帮助我 谢谢 JSON字符串值如下所示 [ { "PaymentRequest": { "RequestGuid": 123 ... } },{ "PaymentRequest": { "RequestGuid": 456 ... } } ] @JsonRootName(value = "PaymentRequest") @JsonIgnorePr

我找不到以下数组json字符串的错误位置。我不确定我的映射是否正确。我希望朋友能帮助我

谢谢

JSON字符串值如下所示

[
 {
  "PaymentRequest": {
    "RequestGuid": 123
     ...
    }
  },{
  "PaymentRequest": {
    "RequestGuid": 456
     ...
    }
} 
]
@JsonRootName(value = "PaymentRequest")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentRequest{
@JsonProperty("RequestGuid")
String requestGuid; 
... 
}
对象定义如下所示

[
 {
  "PaymentRequest": {
    "RequestGuid": 123
     ...
    }
  },{
  "PaymentRequest": {
    "RequestGuid": 456
     ...
    }
} 
]
@JsonRootName(value = "PaymentRequest")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentRequest{
@JsonProperty("RequestGuid")
String requestGuid; 
... 
}
我的包装器类如下所示

public class MyWrapper{
PaymentRequest paymentRequest;
//setter getter
}
我的实现如下所示

ObjectMapper mapper = new ObjectMapper();
List<MyWrapper> users = mapper.readValue(jsonString, new TypeReference<List<MyWrapper>>() {});
ObjectMapper mapper=new ObjectMapper();
List users=mapper.readValue(jsonString,new TypeReference(){});
结果: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“PaymentRequest”(类vpos.dto.MyWrapper),未标记为可忽略(一个已知属性:“PaymentRequest”])
在[Source:(StringReader);第3行,第24列](通过引用链:java.util.ArrayList[0]->vpos.dto.MyWrapper[“PaymentRequest”])

问题是json中的属性被调用
PaymentRequest
,并且您的字段是
PaymentRequest
,开头的p更低。您可以向字段中添加注释
@JsonProperty(“PaymentRequest”)
,或更改如下属性命名策略:

ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);

在MyWrapper类中,它应该是List而不是PaymentRequest什么是
QNBWrapper
?这是与MyWrapper相关还是相同,只是一个打字错误?如果是这样,那么您可能需要将
@JsonProperty(“PaymentRequest”)
添加到
PaymentRequestPaymentRequest
(并删除
@JsonRootName(value=“PaymentRequest”)
-虽然我不熟悉该注释,所以这里可能会出错)。我尝试了“List PaymentRequest”和“List paymentRequests”,但我得到了相同的错误。感谢brohers,我这样更改了它:现在可以工作了。非常感谢@JsonProperty(“PaymentRequest”)私人PaymentRequest PaymentRequest;