假设我有一个这样的Json对象:
{
"name": "Bob Dole",
"company": "Bob Dole Industries",
"phone": {
"work": "123-456-7890",
"home": "234-567-8901",
"mobile": "345-678-9012"
}
}
为了帮助我阅读它,我将Jackson的Object Mapper与以下类一起使用:
public class Contact {
public static class Phone {
private String work;
private String home;
private String mobile;
public String getWork() { return work; }
public String getHome() { return home; }
public String getMobile() { return mobile; }
public void setWork(String s) { work = s; }
public void setHome(String s) { home = s; }
public void setMobile(String s) { mobile = s; }
}
private String name;
private String company;
private Phone phone;
public String getName() { return name; }
public String getCompany() { return company; }
public Phone getPhone() { return phone; }
public void setName(String s) { name = s; }
public void setCompany(String s) { company = s; }
public void setPhone(Phone p) { phone = p; }
}
我的问题是,(使用最简单的解释)对象映射器如何“反序列化”
Json对象?我以为它与变量名匹配,但是将它们更改几个字母不会影响输出。然后,我尝试切换set()函数的顺序,但没有做任何事情。我也尝试过两者,但这也没用。我猜这里还有一些更复杂的东西,但是呢?
我试图查看文档和过去的代码,但没有看到对我有意义的解释。
没有任何注释,它执行所谓的POJO
映射,它仅在实例成员上使用反射,并使用一些有关如何将json中的键映射到实例成员的名称的规则。*
注:它适用于private
成员以及public
或package protected
以及
如果与实例成员的名称不匹配,则开始尝试与getXXX
和setXXX
方法匹配,如果与任何方法都不匹配,则放弃。
它使用批注提供的元数据进行映射和转换。
当您有添加注释的源时,最好总是显式地使用注释,这样就不会猜测将什么映射到什么。
记住显式总是比隐式好!
映射和注释
我现在正在为我所有的新项目创建JSON
Schema定义,以根据架构规则引擎记录什么是有效的JSON以及什么是无效的JSON。这是记录数据结构并消除html" target="_blank">解析错误的好方法。
问题内容: 我在以下架构中具有json对象: 在这里,该字段包含一个嵌入的json对象,并且该对象的模式是动态的,并且每次都不同。 的对象是不同的API服务,以及不同的API服务的不同方法获得的原始输出。不可能将其映射到所有可能的值。 是否可能有如下所示的java类: 或者类似的东西,以便我可以接收基本架构并对其进行处理,然后将其发送到相关类,该类将转换为适当的预期类? 问题答案: 使用 您可以从
我们有一个json,对于一个特定的字段,数据类型是不同的。我想用jackson将它映射到Java对象。如果字段是一种类型,我可以做到。但是对于不同的类型找不到方法。 基本上这个POJO我不知道怎么定义它 在上面的JSON for add_info字段中,它包含一个JSON对象数组,其中第一个对象值是string类型,第二个值包含一个对象数组。 如何使用jackson处理Pojo的这种情况
假设我有这样的物体 我正在使用RestTemboard类从URL中获取json,如下所示: 之后,我想使用jackson对象映射器将json字符串转换为一个对象 将实体类作为第二个参数传递 问题是我应该如何编写ExampleJson实体来处理get-Showed json?我试过这样上课,但似乎不管用。 我得到了这样一个例外:
比方说,我有一个方法,返回一个自定义的与一些对象。它们作为返回给我。我需要从这些对象中获取某个字段的值,但是我不知道对象的类。 有没有办法通过反射或其他方式做到这一点?
我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误:
我想创建对象MyObject的实例,其中的每个字段都是该字段值的总和 我创建一个对象 然后我构建对象列表: 我想要创建对象() 很容易对每个流求和一个字段: 或 然后构造对象