Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 转换JAXBElement<;字符串>;使用Jackson创建json_Java_Json_Spring_Jackson - Fatal编程技术网

Java 转换JAXBElement<;字符串>;使用Jackson创建json

Java 转换JAXBElement<;字符串>;使用Jackson创建json,java,json,spring,jackson,Java,Json,Spring,Jackson,有一节课如下- public class Org{ @XmlElementRef(name = "InstitutionCode", namespace = "http://schemas.tes.org/2004/07/ABC.test", type = JAXBElement.class, required = false) protected JAXBElement<String> institutionCode; } 如何

有一节课如下-

public class Org{
    @XmlElementRef(name = "InstitutionCode", namespace = "http://schemas.tes.org/2004/07/ABC.test", type = JAXBElement.class, required = false)
        protected JAXBElement<String> institutionCode;      
        }
如何将值作为

{"institutionCode":"inst"}

谢谢,

您可以为它编写自定义的Jackson序列化程序:

public class OrgSerializer extends JsonSerializer<Org> {
    @Override
    public void serialize(Org org, JsonGenerator jgen, SerializerProvider provider) 
            throws IOException, JsonProcessingException {
        jgen.writeStartObject();
        jgen.writeStringField("institutionCode", org.getInstitutionCode());
        jgen.writeEndObject();
    }
}
或者,如果您不希望每次都这样做,或者无法更改类,则可以将该类作为参数传递给
对象映射器

ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(Org.class, new OrgSerializer());
mapper.registerModule(module);


另一个解决方案可能是使用
@JsonView
,但我自己没有使用过。

谢谢Meskobalaz,但是类org是一个生成的类,我无法更改它。有没有其他方法可以应用定制的Jackson Serializer存储大量Meskobalaz。
public class OrgSerializer extends JsonSerializer<Org> {
    @Override
    public void serialize(Org org, JsonGenerator jgen, SerializerProvider provider) 
            throws IOException, JsonProcessingException {
        jgen.writeStartObject();
        jgen.writeStringField("institutionCode", org.getInstitutionCode());
        jgen.writeEndObject();
    }
}
@JsonSerialize(using = OrgSerializer.class)
public class Org {
    // ...
}
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(Org.class, new OrgSerializer());
mapper.registerModule(module);