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

如何使用Jackson ObjectMapper获取字段类型?

魏明亮
2023-03-14

知道如何根据Jackson的ObjectMapper对象和特定的Class检索给定json路径的Java类型吗?

假设我们有

class User {
    String fullName;
    Integer age;
    Boolean active;
    // ...
}
class Account {
    @JsonProperty("accountOwner")
    User owner;
    // ...
}

Jackson的ObjectMapper我想找到一种方法,将字符串值反序列化到给定路径上由字段表示的类型的对象(或至少获取其类型),例如。

  • 给定“/accountOwner/age”和“25”得到25(整数类型)
  • 给定“/accountOwner/active”和“true”得到true(布尔类型)
  • 给定“/accountOwner/fullName”和“Johny Bravo”获取“Johny Bravo”字符串
  • 等等

共有1个答案

常枫涟
2023-03-14

我举了一个例子:

User user = new User();
ObjectMapper mapper = new ObjectMapper();
try {
     user = mapper.readValue(new File("D:\\json.txt"), User.class);
    System.out.println("user : " + user);
} catch (Exception e) {
    e.printStackTrace();
}

我的豆子:

public class User {
    String fullName;
    Integer age;
    Boolean active;
    /**
     * @return the fullName
     */
    public String getFullName() {
        return fullName;
    }
    /**
     * @param fullName the fullName to set
     */
    public void setFullName(String fullName) {
        this.fullName = fullName;
    }
    /**
     * @return the age
     */
    public Integer getAge() {
        return age;
    }
    /**
     * @param age the age to set
     */
    public void setAge(Integer age) {
        this.age = age;
    }
    /**
     * @return the active
     */
    public Boolean getActive() {
        return active;
    }
    /**
     * @param active the active to set
     */
    public void setActive(Boolean active) {
        this.active = active;
    }

    @Override
    public String toString() {
        return "User [fullName=" + fullName + ", age=" + age + ", " +
                "active=" + active + "]";
    }
}

最后是Json对象(Json.txt):

{"fullName":"Pedro Gamarra","age":30,"active":true}

我希望这能帮助你。

 类似资料:
  • 下面是我的示例类,我希望通过在这行中使用反射来获取y和z字段(Field[]fields=forName.getDeclaredFields();)我得到了空数组。如果y和z不是类结构的一部分,那么它们属于哪一部分

  • 基本上,我的要求是通过使用反射来获取超类对象,以便获得字段名及其值。 所以,我有一门课 现在我正在使用 当我尝试使用以下代码访问该字段时,它会给我java.lang.Class类的类型。 它让我异常 有人能帮助我如何将其转换为对象,以便我可以访问文件夹

  • 问题内容: 我有一个输入字段,如下所示: 我想获取输入字段的值并将其分配给会话。如何使用PHP或jQuery做到这一点? 问题答案: 使用PHP 或超全局变量通过HTML标签的名称来检索输入标签的值。 例如,更改表单中的方法,然后通过输入名称回显该值: 使用方法: 要显示值: 使用方法: 要显示值:

  • 我有一个输入字段如下: 我想获取输入字段值,并将其分配给会话。如何使用PHP或jQuery实现这一点?

  • 快速编辑:正如下面指出的,我应该做BFS,但我需要一个点来停止检索新字段,我还没有时间考虑。谢谢你的帮助! 我试图使用Java反射递归地获取类的字段,本质上创建一个树来显示 这是一个递归解析器,所以我认为递归显示函数是很酷的。不幸的是,它压垮了我。 示例类Foo,具有Class1和Class2字段,每个字段可以有更多不同类的字段: 我的递归方法: println已经用于测试,Foo的一个示例输出(

  • 如何使用pdfbox获取PDF表单中存在的字段类型。我的意思是,如果单选按钮和检查按钮出现在PDF表单中,它应该返回我单选按钮或检查按钮,但使用getFieldType()方法,我只能为文本框返回“txt”,而对于单选/检查框,它返回-“btn”。 但我需要区别的按钮是,无论是收音机或复选框或它的一个按钮,可以帮助我的任何一个请谢谢