我一直在阅读关于Jackson XML反序列化的教程(#1,#2)。我试图通过编写一些java代码来遵循示例:
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.xml.XmlMapper;
public class JacksonDemo {
@JsonPropertyOrder({"age", "id", "name"})
public static class Person {
@JsonProperty("_id")
public String id;
public String name;
public int age;
@JsonIgnore
public String note;
}
public static void main(String[] args) throws Exception {
XmlMapper mapper = new XmlMapper();
Person value = new Person();
value.age = 4;
value.id = "12345";
value.name = "George";
value.note = "Invalid";
String s = mapper.writeValueAsString(value);
System.out.println(s);
}
}
根据教程,这将产生以下输出:
<Person><age>4</age><_id>12345</_id><name>George</name></Person>
但是,它会导致以下错误输出:
<Person><id>12345</id><name>George</name><age>4</age><note>Invalid</note></Person>
属性顺序不正确,“id”字段包含不正确的XML元素,“note”字段包含不正确。据说,各种java注释应该会改变Jackson的行为,但似乎所有注释都被忽略了。有人知道这是为什么吗?
这是jackson xml databind 0.6.2、jackson annotations 2.6.0和jackson 2.6.5的版本。
2011年11月11日,版本为0.6.2
的jackson xml数据绑定发布。在链接文章中,建议使用jackson dataformat xml
库。
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.0</version>
</dependency>
最新版本是2.9.8
,我建议使用它。在下面,您可以找到您的示例应按预期工作的Maven
依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version.core}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version.core}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version.core}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version.core}</version>
</dependency>
这里是杰克逊。版本核心是2.9.8
。
在实体的自定义反序列化器中,我希望以一种尊重@JSONFORMAT注释的方式递归调用(部分)字段的反序列化。更具体地说,这就是反序列化器的样子: 在该示例中,jsonParser.readValueAs()不接受带注释的 是否有任何方法可以反序列化对象的字段,使其尊重注释格式?
问题内容: 简介:我正在使用Hibernate Tools 4.0.0-CR1和Hibernate 4.2(包括Hibernate Validator),但是没有使用Bean验证。该模式 是 与部署时正确生成。 但是我更喜欢通过以下build.xml目标生成我的DDL: 我的hibernate-console.properties如下: 我仔细检查了jar在我的lib.path中… 示例实体如下所
本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。
我试图在Java中序列化,但在运行我的程序时,我收到一个。 查看类,我注意到它没有实现。 为什么不实现?
问题内容: 我正在使用以下查询: 令人惊讶的是,该语句不包含错误值为NULL的行。我的意图是仅筛选错误值为连接错误’‘的行。我需要提供其他条件(或错误为NULL)以检索正确的结果。 为什么MYSQL会滤除带有NULL值的结果?我以为IN关键字会返回一个布尔结果(1/0),现在我知道某些MYSQL关键字不返回布尔值,它也可能会返回NULL ....但是为什么将NULL当作特殊值呢? 问题答案: 这个
我读了Doug Stevenson写的这些博客文章,第1部分,第2部分,第3部分。在第二部分,他说 Realtime Database SDK使将DataSnapshot转换为JavaBean样式的对象变得非常容易 并提到我们可以使用这行代码将DataSnapshot反序列化为HotStock对象(一个JavaBean类) HotStock stock=datasnapshot.getValue(