Tag: 编组

Java对象用jackson将列表扩展到Json

我想使用Jackson将扩展列表的对象转换为Json。 例: public class TryToSerialize extends ArrayList { private int number; private String word; public TryToSerialize(){ number = 0; word = “”; } @JsonProperty public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } @JsonProperty public String getWord() { return word; } public void setWord(String word) { this.word = […]

Grails XML编组:更改默认的“”根元素名称

默认情况下,Grails在XML中使用元素标记在其根目录中呈现List。 同样,它使用 渲染Map。 我想控制根元素的名称。 如果我正在返回User的ArrayList,那么我想看看: … … 我怎样才能实现上述目标? 以下是要求: 轻松将此序列化应用于50多个域类 从开发人员中抽象出来,因此在渲染域对象期间不需要显式编码(即,当调用render()或respond() ,仍会传入ArrayList,没有像as MyNewType那样的显式转换/转换) 能够处理空列表的边缘情况(应该返回 ) 尼斯对富人: 如果这个公式也可以应用于Map,那很棒:) 我已经半成功地实现了上述目标,除了我不知道如何解释空列表案例。 我实现了自己的ObjectMarshaller,它呈现了List类型的所有对象。 只要列表包含一个元素,我就可以检查元素的类型并确定复数标记名称应该是什么(User => users)。 但是如果列表是空的,并且由于Javagenerics是擦除的(除非在Groovy中有所不同?)然后我没有办法正确命名空列表而不是默认为类的东西,这是不可接受的。 我经历过的一些资源: http://www.cacoethes.co.uk/blog/groovyandgrails/dry-json-and-xml-with-grails http://grails.1312388.n4.nabble.com/Custom-XML-Marshaller-change-the-root-element-name-td4649949.html http://jwicz.wordpress.com/2011/07/11/grails-custom-xml-marshaller/ http://mrhaki.blogspot.com/2013/11/grails-goodness-register-custom.html http://manbuildswebsite.com/2010/02/15/rendering-json-in-grails-part-3-customise-your-json-with-object-marshallers/

JAXB是否始终需要XSD

http://www.oracle.com/technetwork/articles/javase/index-140168.html#binsch – 本文说“ JAXB要求您要访问的XML文档具有架构 ” 这是一个Hello World示例,使用hello.xsd http://jaxb.java.net/tutorial/section_1_3-Hello-World.html#Hello%20World- 这是一个不使用任何xsd的Hello World示例。 http://www.mkyong.com/java/jaxb-hello-world-example/ 规范是否说JAXB在没有 xsd的情况下也可以工作,如果这是真的那么术语“绑定”的合理程度。 我相信通过绑定模式发生绑定。 Carification将会很有帮助。 谢谢

jaxb当xsi:nil = true如果存在任何子元素,它仍然显示

我有下面的xml输出,当父元素具有属性xsi时,我们如何隐藏子元素(endDate):nil = true即使子元素是nillable = true? // XML输出 //快照类 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = “”, propOrder = { “OffersElement”}) @XmlRootElement(name = “snapshots”) public class Snapshots { @XmlElement(name = “Offers”) private OffersElement OffersElement; public OffersElement getOffersElement() { return offersElement; } public void setOffersElement(OffersElement offersElement) { this.offersElement = offersElement; } } // OffersElement类 @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = “Offer”) public class OffersElement […]

使用JAXB Marshaller处理XML转义字符(例如引号)

我需要使用JAXB Marshaller(JAXB 2.2版)将XML java对象序列化为XML文件。 现在在xml对象中,我有一个包含String值的标记,这样: ” **”done”** ” 现在您可以看到此字符串值再次包含标记。 我希望在xml文件中以相同的方式编写它。 但JAXB Marshaller会转换这些值,例如: “&”lt;YYYYY”&”gt;”&”#xD;done ……等等 我无法使用JAXB 2.2单独处理这些转义字符。无论如何它是否可能? 在这方面的任何帮助都会很棒.. 在此先感谢Abhinav Mishra

我可以强制JAXB不转换成“进入”,例如,当编组到XML时?

我有一个使用JAXB编组为XML的Object。 一个元素包含一个包含引号(“)的String。生成的XML具有" where“存在的位置。 即使这通常是首选,我需要我的输出来匹配遗留系统。 如何强制JAXB不转换HTML实体? – 感谢您的答复。 但是,我从未看到调用处理程序escape()。 你能看一看,看看我做错了什么吗? 谢谢! package org.dc.model; import java.io.IOException; import java.io.Writer; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import org.dc.generated.Shiporder; import com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler; public class PleaseWork { public void prettyPlease() throws JAXBException { Shiporder shipOrder = new Shiporder(); shipOrder.setOrderid(“Order’s ID”); shipOrder.setOrderperson(“The woman said, \”How ya doin & stuff?\””); JAXBContext context = JAXBContext.newInstance(“org.dc.generated”); […]

JAXB编组XMPP节

我正在尝试使用以下代码段来编组消息: JAXBContext jContext = JAXBContext.newInstance(Iq.class); Marshaller m = newJAXBContext.createMarshaller(); m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); Bind bind = new Bind(); bind.setResource(“resource”); Iq iq = new Iq(); iq.setId(iqId); iq.setType(“set”); iq.getAnies().add(bind); ByteArrayOutputStream baos = new ByteArrayOutputStream(); m.marshal(iq, baos); 这里,Iq和Bind是由相关xmpp模式形成的对象。 我的问题是,使用jaxb 2.0及更高版本,所有命名空间都在根元素中声明: resource 但是,这里需要的是命名空间应该占用适当的位置: resource 有没有办法通过JAXB 2.0或更高版本在第二个xml节中看到它们来编组xmpp节? 长话短说,我在这里有两个问题:1。在适当的位置声明命名空间。 2.删除我理解的命名空间前缀可以使用NamespacePrefixMapper删除? 但不确定,一个例子会很棒。