Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson XML自定义字段反序列化器_Java_Xml_Jackson - Fatal编程技术网

Java Jackson XML自定义字段反序列化器

Java Jackson XML自定义字段反序列化器,java,xml,jackson,Java,Xml,Jackson,在使用Jackson进行JSON处理时,我扩展了JsonDeserializer,并能够处理自定义反序列化。用Jackson处理XML有类似的事情吗 import java.util.List; public class Something { private int iinteger; private String sstring; private List<String> sarray; public Something(int iint

在使用Jackson进行JSON处理时,我扩展了JsonDeserializer,并能够处理自定义反序列化。用Jackson处理XML有类似的事情吗

import java.util.List;

public class Something {

    private int iinteger;

    private String sstring;

    private List<String> sarray;

    public Something(int iinteger, String sstring, List<String> sarray) {
        this.iinteger = iinteger;
        this.sstring = sstring;
        this.sarray = sarray;
    }

    public Shit() {
    }

    public int getIinteger() {
        return iinteger;
    }

    public void setIinteger(int iinteger) {
        this.iinteger = iinteger;
    }

    public String getSstring() {
        return sstring;
    }

    public void setSstring(String sstring) {
        this.sstring = sstring;
    }

    public List<String> getSarray() {
        return sarray;
    }

    public void setSarray(List<String> dumb) {
        this.sarray = dumb;
    }
}
import java.util.List;
公开课{
私人情报员;
私有字符串;
私人名单sarray;
公共内容(整数、字符串、列表){
this.iinteger=iinteger;
this.sstring=sstring;
this.sarray=sarray;
}
公共垃圾{
}
public int getIinteger(){
返回情报员;
}
公共无效设置集成器(集成集成器){
this.iinteger=iinteger;
}
公共字符串getSstring(){
返回字符串;
}
公共无效设置字符串(字符串sstring){
this.sstring=sstring;
}
公共列表getSarray(){
返回沙雷;
}
公共无效数组(列表哑){
sarray=哑;
}
}
我想从中反序列化

<?xml version="1.0"?>
<Something xmlns="">
    <iinteger>23</iinteger>
    <sstring>hey</sstring>
    <sarray >abc abd abv</sarray >
</Something>

23
嘿
abc abd abv
是的,有

引用实现被称为。 它是Metro(JAX-WS参考实现)的一部分,但也可以独立使用。

除了JSON之外

您将需要以下依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.6.3</version>
</dependency>
您可以使用以下命令将其序列化为XML:

ObjectMapper xmlMapper = new XmlMapper();
String xml = xmlMapper.writeValueAsString(new Simple());
结果是:

<Simple>
    <x>1</x>
    <y>2</y>
</Simple>

1.
2.
要反序列化:

ObjectMapper xmlMapper = new XmlMapper();
Simple value = xmlMapper.readValue("<Simple><x>1</x><y>2</y></Simple>", Simple.class);
ObjectMapper xmlMapper=new xmlMapper();
Simple value=xmlMapper.readValue(“12”,Simple.class);

相当广泛!告诉我们更多关于你的代码等等…如果我解决了你的问题,请接受。你也可以使用自定义序列化程序。XML输出有一些限制,这使得编写自定义处理程序更具挑战性,因此首选使用注释和配置,但对于简单的输出,编写适用于XML格式的自定义序列化程序就足够容易了。
ObjectMapper xmlMapper = new XmlMapper();
Simple value = xmlMapper.readValue("<Simple><x>1</x><y>2</y></Simple>", Simple.class);