当前位置: 首页 > 知识库问答 >
问题:

为什么我的属性在转换为pojo时无法识别[重复]

宰烈
2023-03-14

我有以下JSON:

{ "_id" : "3", "longitude" : "3222", "latitude" : "55", "timeDateOfUsage" : ["02/11/17 13:30:35", "1", "02/11/17 13:30:45", "1", "02/11/17 13:30:51", "0"] }

我正试图用杰克逊把它转换成pojo。这就是我所拥有的:

String inputJson = "{ \"_id\" : \"3\", \"longitude\" : \"3222\", 

\"latitude\" : \"55\", \"timeDateOfUsage\" : [\"02/11/17 13:30:35\", \"1\", \"02/11/17 13:30:45\", \"1\", \"02/11/17 13:30:51\", \"0\"] }";
        ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY);
        mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        try{
            dbResponseonce  response = mapper.readValue(inputJson,dbResponseonce.class);
            System.out.println(response.getLatitude());
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

我的另一个类有字段,这些字段被命名为JSON中的元素,并具有getter和setter。

上面的代码可以工作,但是当我只是创建一个没有配置的基本ObjectMapper对象时,它不起作用。这是为什么?这是堆栈跟踪错误:

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "_id" (Class dbResponseonce), not marked as ignorable

这是我的pojo类,包含getter和setter:

public class dbResponseonce {

private String _id;

public String getId() { return this._id; }

public void setId(String _id) { this._id = _id; }

private String longitude;

public String getLongitude() { return this.longitude; }

public void setLongitude(String longitude) { this.longitude = longitude; }

private String latitude;

public String getLatitude() { return this.latitude; }

public void setLatitude(String latitude) { this.latitude = latitude; }

private ArrayList<String> timeDateOfUsage;

public ArrayList<String> getTimeDateOfUsage() { return this.timeDateOfUsage; }

public void setTimeDateOfUsage(ArrayList<String> timeDateOfUsage) { this.timeDateOfUsage = timeDateOfUsage; }}

共有1个答案

韦睿
2023-03-14

_id的getter和setter不正确。

尝试按如下方式定义它们:

public String get_id() {
    return _id;
}

public void set_id(String _id) {
    this._id = _id;
}

或者在_id@Json属性("_id")的getter或setter上使用

 类似资料:
  • 问题内容: 我正在尝试在hadoop 2.2.0上运行我的PDFWordCount映射减少程序,但出现此错误: 它说我的地图类未知。我在3个VM上有一个带有namenod和2个datanodes的集群。 我的主要功能是: 如果我使用以下命令运行jar: 正如我在上面看到的那样,它作为输出路径并给我错误,而我的主要功能却在运行。 我已经运行了一个简单的WordCount项目,该项目的主要功能与该主要

  • 问题指出: 创建一个具有长度和宽度双属性的矩形类。默认构造函数应该将这些属性设置为1。提供计算矩形周长和面积的方法,以及两个数据字段的访问器和赋值器。length和width的mutator方法应该验证传入的数字是否大于0.0且小于20.0——如果不符合这些标准,就不应该更改字段的值。 在同一文件中编写一个驱动程序类来测试您的矩形类。它应该提示用户输入矩形的长度和宽度,然后打印出矩形的面积和周长。

  • 问题内容: Java SE 6项目是否支持eclipselink jpa2的标准api?如果没有,那是我的问题。我是否需要在persistence.xml中为条件api指定特殊的内容? 这是我的条件查询: 这是我的意思实体: 问题答案: 关于您的代码 我没有检查条件查询本身的正确性,但是,正如克里斯所提到的,您正在将静态元模型类与不会暴露您所要查找的混合在一起。假设已经生成了元模型类,请删除第一行

  • Android Studio(版本4.1.1)在我的xml布局文件中为使用onClick的视图显示警告(警告id: UsingOnClickInXml,平台的旧版本不正确支持解析Android:onClick)。当我运行代码检查器时,这些也会显示在lint警告中。Android Studio似乎没有使用我在build.gradle (app)文件中设置的minSdkVerion (16)。 以下是

  • 问题内容: 我有一个子过程命令,输出一些字符,例如’\ xf1’。我正在尝试将其解码为utf8,但出现错误。 上面抛出: 当我使用’latin-1’时它可以工作,但是utf8也不能工作吗?我的理解是latin1是utf8的子集。 我在这里想念什么吗? 编辑: 问题答案: 您已经将Unicode与UTF-8混淆了。Latin-1是Unicode的子集,但不是UTF-8的子集。 避免像瘟疫一样思考各个

  • 问题内容: 考虑以下: 我一直在寻找背后的逻辑,但是没有运气。值得一提的是,如果将结构更改为类,则效果很好。 总是可以添加一种解决方法,并将fooArray的每个对象映射为强制类型,将它们转换为Any类型,但这不是这里的问题。我正在寻找一种解释,为什么会这样。 有人可以解释一下吗? 问题答案: Swift 3更新 从Swift 3(特别是Xcode 8 beta 6附带的内部版本)开始,集合类型现