我收到以下错误,但找不到解决方法对我有用:
无法识别的字段“ GaugeDeviceId”(GaugeDevice类),未标记为可忽略
问题似乎是,该服务返回的属性名称前带有一个大写字母,而类属性则以一个下一个字母开头。
我试过了:
@JsonProperty("SerialNo")
到属性实例化-同样的错误@JsonProperty("SerialNo")
到相应的吸气剂-同样的错误@JsonProperty("SerialNo")
到相应的二传手-同样的错误@JsonProperty("SerialNo")
到所有这些(只是为了好玩)-相同的错误(注意:@JsonProperty("SerialNo")
这只是一个例子)
奇怪的是,该注解:@JsonIgnoreProperties(ignoreUnknown = true)
应该恰好抑制了该错误,但仍在触发…
这里是班级:(注:不完整)
@JsonIgnoreProperties(ignoreUnknown = true)
public class GaugeDevice
{
private int gaugeDeviceId;
private Date utcInstallation;
private String manufacturer;
private float valueOffset;
private String serialNo;
private String comment;
private int digitCount;
private int decimalPlaces;
@JsonProperty("SerialNo")
public String getSerialNo() {
return serialNo;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
@JsonProperty("Comment")
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
出路在哪里?请帮忙。
编辑:
这是客户端类:(只是一个简单的测试客户端)
import ccc.android.meterdata.*;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import org.glassfish.jersey.jackson.JacksonFeature;
public class RestClient
{
private String connectionUrl;
private javax.ws.rs.client.Client client;
public RestClient(String baseUrl) {
client = ClientBuilder.newClient();;
connectionUrl = baseUrl;
client.register(JacksonFeature.class);
}
public GaugeDevice GetGaugeDevice(int id){
String uri = connectionUrl + "/GetGaugeDevice/" + id;
Invocation.Builder bldr = client.target(uri).request("application/json");
return bldr.get(GaugeDevice.class);
}
}
我希望错误的根源在这里?
要检查的另一件事是PropertyNamingStrategy
,这将允许Jackson使用“
Pascal命名”并将JSON属性与POJO属性进行匹配。请在此处查看f.ex:http :
//www.javacodegeeks.com/2013/04/how-to-use-propertynamingstrategy-in-
jackson.html
我来这里是因为我还没有找到解决问题的办法。我实际上是在尝试用wiremock来存根一个响应(对模拟服务的调用是通过假装客户端完成的)。我的意图是在真实的假客户机上得到虚假的响应,不是在测试中,而是在真实的应用程序中。因此,在本例中,我不是在测试中截取WireMock服务器,而是在spring boot应用程序类中,然而,在截取响应时,我遇到了一个非常奇怪的错误,到目前为止,我已经调查了很多次,但都
问题内容: 我遇到反序列化问题: 这是我的课: 我要反序列化的JSON是: 我得到这个异常: 我不想添加: 因为我想得到ResObj … 如果我添加了注释,它将通过,但会将其设置为null ..这是我不想要的。 问题答案: 如果您不想在bean中使用设置器,而只使用字段和获取器,则可以使用ObjectMapper的可见性检查器来允许字段可见。像下面这样
问题内容: 我使用杰克逊将JSON转换为Object类。 JSON: 对象类别: 码: 我的代码抛出这样的异常: 而且我不想在Test类上添加一个道具,我只是想让jackson转换Test中也存在的存在值。 问题答案: Jackson提供了几种不同的机制来配置“额外” JSON元素的处理。以下是将to 配置为not 的示例。 有关其他方法,请参见http://wiki.fasterxml.com/
我有一个具有此结构的 xsd 文件: 所以,我已经用jaxb2生成了java类: Accesso 类和其他类也是如此。这是我尝试反序列化的xml文件的一个例子: 但是当我要反序列化某个xml文件时,我得到了这个错误: com.fasterxml.jackson.databind.exc.未识别的字段Accesso(类com.xx.yy.FlsProSoc),未标记为不可忽略(一个已知的属性:内容]
我有一个thymeleaf表单和Spring引导后端。我有一个model类,它的getters和setters名称有点不同。因此,当我要取那个模型并将它的字段作为表单输入字段时,Tymeleaf不能将它们识别为字段。 窗体适用于区域字段。但对Amt字段不起作用。如果我将isAmt()get方法更改为getIsAmt(),也许我可以修复这个问题。但是我不能更改模态类的任何方法名,因为这个类已经编译好
问题内容: Optparse,旧版本只是忽略所有无法识别的参数并继续执行。在大多数情况下,这不是理想的,已在argparse中进行了更改。但是在某些情况下,您想忽略任何无法识别的参数并解析您指定的参数。 例如: 反正有覆盖吗? 问题答案: 更换 与 例如,