gpt4 book ai didi

java - @JsonProperty 未按预期工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:39 53 4
gpt4 key购买 nike

当我使用 Spring RestTemplate 使用一个安静的网络服务时,我得到以下异常

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "IMP-SourceTxnId" (class com.model.ResponseBaseParameters) not marked as ignorable (4 known properties: , "sourceTxnId", "incommTxnId", "responseCode", "responseText"])

at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@2f2ddd7c; line: 1, column: 130] (through reference chain: com.incomm.ife.model.rogers.RogersTransactionResponse["responseBaseParameters"]->com.incomm.ife.model.rogers.ResponseBaseParameters["IMP-SourceTxnId"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:79)
at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:708)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1159)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:315)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:449)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:98)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2094)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readInternal(MappingJackson2HttpMessageConverter.java:123)
... 54 more

响应参数是
{

"responseBaseParameters":

{

"responseCode": "32",

"responseText": "Invalid Request",

"incommTxnId": null,

"IMP-SourceTxnId": "551932ba-6af4-44f9-ab98-db5bc96e962b"

}

}

我的 POJO 类(class)是
public class ResponseBaseParameters {

private String responseCode;

private String responseText;
private String incommTxnId;
@JsonProperty("IMP-SourceTxnId")
private String sourceTxnId;

public String getResponseCode() {
return responseCode;
}

public void setResponseCode(String responseCode) {
this.responseCode = responseCode;
}

public String getResponseText() {
return responseText;
}

public void setResponseText(String responseText) {
this.responseText = responseText;
}

public String getIncommTxnId() {
return incommTxnId;
}

public void setIncommTxnId(String incommTxnId) {
this.incommTxnId = incommTxnId;
}

public String getSourceTxnId() {
return sourceTxnId;
}

public void setSourceTxnId(String sourceTxnId) {
this.sourceTxnId = sourceTxnId;
}

}

请了解为什么我会收到此错误。谢谢

最佳答案

“REST API”有很多实现,它们相互冲突。很多时间后,我用这个配置解决了它:

import com.fasterxml.jackson.annotation.JsonProperty;
...
@JsonProperty("cep")
private String cep;

必须有这个包的 JsonProperty 而不是 org.codehaus ......
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.19</version>
<scope>test</scope>
</dependency>

总结: Jersey 客户端 1、jackson json 属性和 删除所有其他 jaxrc 库

奥布斯:。我使用 jackson 是因为容器已经提供,但是,如果它适合您,您可以测试其他组合。

关于java - @JsonProperty 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125173/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com