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

Jackson数据绑定JSON布尔转换

刘棋
2023-03-14

我正在使用杰克逊对象映射器将JSON转换为对象并进行一些转换并将其转换回JSON。

JSON类似于{“id”:“abc1243”,“val”:1,“isDel”:true}

在上面的例子中,val是int,isDel是布尔值。

我的对象定义如下

public class MyObj{
  private String id;
  private String val;
  private String isDel;
   //getters and setters

}

当我将JSON转换为MyObj时,字符串id和Int val被绑定到字符串中,但布尔值没有绑定,因此我得到null。

Im使用以下方法

   ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    try {
        MyObj myObj = mapper.readValue(new File("/Users/sample.json"), MyObj.class);
}

共有2个答案

郎经纶
2023-03-14

将JSON中的布尔映射为Java中的布尔是很自然的。

签出行141 deserializeIfNatural(),其中使用base使用类测试令牌类型。isAssignableFrom(Boolean.class)在本例中,它是不可赋值的,因为它是字符串,因此没有映射。

衡泰
2023-03-14

您可以有一个接受布尔值并进行必要转换的setter

@JsonProperty("isDel")
public void setIsDel(boolean isDel) {
  this.isDel = String.valueOf(isDel);
}

注意:这不会干扰接受String的setter(注释告诉Jackson使用这个特定的方法

 类似资料:
  • 主要内容:1 简单数据绑定的映射关系,2 简单数据绑定的示例数据绑定API用于使用属性访问器或使用注解将JSON与POJO(普通Java对象)进行转换。它有两种类型。 简单数据绑定:在List,String,数值类型,布尔值和NULL对象之间来回转换JSON。 完全数据绑定:将JSON与任何Java类型相互转换。 ObjectMapper读取/写入两种类型的数据绑定的JSON。数据绑定是最方便的方法,类似于XML的JAXB解析器。 1 简单数据绑定的映射关

  • 主要内容:1 泛型数据绑定的示例在简单的数据绑定中,我们使用了Map类,该类使用String作为键,使用Object作为值对象。取而代之的是,我们可以换成一个具体类型的Java对象,然后将其类型转换为JSON。 1 泛型数据绑定的示例 1.1 编写核心类 MainApp: 1.2 运行测试

  • 主要内容:1 完整数据绑定的示例完整数据绑定是指将JSON映射到任何Java对象。 1 完整数据绑定的示例 1.1 编写核心类 MainApp: 1.2 运行测试 项目根目录下生成student.json文件,内容如下:  

  • 问题内容: 我有一个pojo类,其中标志之一是Boolean类型。 当此属性获取非布尔值(不是fastxml时)时,杰克逊会自动将输入值转换为。调试了几个小时后,我发现这是在setter方法中发生的。 如果此属性的输入值为非布尔值,我想传递自定义消息。我已经编写了自己的注释来验证此属性的输入值,并返回自定义消息(如果它不是布尔值,但是杰克逊在检查自定义验证器之前将其绑定)。 使用杰克逊版本>>>

  • 我试图加载从JSON文件中获取的值。-重新加载JSON文件的目标对象是:

  • 本文向大家介绍json数据处理及数据绑定,包括了json数据处理及数据绑定的使用技巧和注意事项,需要的朋友参考一下 一.json数据处理 1.json数据 2.获取数据 数据注入:"{{data}}" 3.数据处理: 4.数据绑定 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!