程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略?

开发过程中遇到Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略的问题如何解决?下面主要结合日常开发的经验,给出你关于Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略的解决方法建议,希望对你解决Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略有所启发或帮助;

要检查的另一件事是PropertyNamingStrategy,这将允许Jackson使用“ Pascal命名”并将JsON属性与POJO属性进行匹配。请在此处查看f.ex:http ://www.javacodegeeks.com/2013/04/how-to-use-propertynamingstrategy-in- jackson.HTML

解决方法

我收到以下错误,但找不到解决方法对我有用:

问题似乎是,该服务返回的属性名称前带有一个大写字母,而类属性则以一个下一个字母开头。

我试过了

  1. 将propertyNames更改为第一个大写字母-相同的错误
  2. 添加@JsonProperty("serialNo")到属性实例化-同样的错误
  3. 添加@JsonProperty("serialNo")相应的吸气剂-同样的错误
  4. 添加@JsonProperty("serialNo")相应的二传手-同样的错误
  5. 添加@JsonProperty("serialNo")所有这些(只是为了好玩)-相同的错误

(注意:@JsonProperty("serialNo")这只是一个例子)

奇怪的是,该注解:@JsonIgnoreProperties(ignoreUnknown = truE)应该恰好抑制了该错误,但仍在触发&Hellip;

这里是班级:(注:不完整)

@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);
    }
}

我希望错误的根源在这里?

大佬总结

以上是大佬教程为你收集整理的Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略全部内容,希望文章能够帮你解决Jackson Json Deserialisation:无法识别的字段“…”,未标记为可忽略所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。