Tag: xstream

XML中的不需要的元素通过XSTREAM

我是XStream的新手 我跟随DTO @XStreamAlias(“outline”) public class OutlineItem implements java.io.Serializable { private static final long serialVersionUID = -2321669186524783800L; @XStreamAlias(“text”) @XStreamAsAttribute private String text; @XStreamAlias(“removeMe”) private List childItems; } 我曾经做过 XStream stream = new XStream(); stream.processAnnotations(OutlineItem.class); stream.toXML(outlineItem); 我得到这个作为我的输出文本 而我希望输出为: 任何帮助将不胜感激! 不确定是否需要某种XSLT …… 沙阿

Xstream隐式映射作为根元素的属性

我试图找到一个解决方案,使用XStream将地图转换为根元素属性。 我不认为这是可能的,但这是我尝试过的。 我创建了一个自定义转换器并将其附加到根对象,然后在转换器中我可以访问我试图转换为属性的地图,我遍历地图并使用writer.addAttribute将attirbute写入节点( entry.getKey(),entry.getValue()); 这确实会将属性写入根节点,例如 这种方法的问题在于它不处理文档的其余部分,它只是在处理地图后停止,为了使其工作,我需要一些方法让默认转换器重新控制并完成模型。 我一直试图使用的第二个解决方案是为地图创建一个自定义转换器,这种方法的问题是我无法获得根元素的句柄,所以我无法写入它,是否可能以这种方式访问​​根元素? 谢谢,乔恩

XStream不会调用readObject()

我有这样建模的代码: class A { private transient Foo foo = new Foo(); private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); foo = new Foo(); } } class B extends A {} 我将readObject()添加到A中,以便在反序列化期间,将初始化瞬态foo 。 但是,我在代码中遇到了断点,并且可以看到XStream根本没有调用readObject()。 我也尝试在类B中使用readObject()来调用A中的initFoo()函数,但这也不起作用。 网站上的常见问题解答似乎并不意味着任何其他样板是必要的。 为什么不被召唤?

在解析XML时拦截Xstream

假设我有一个像这样的简单Java类: public class User { String firstName; String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } } 现在,假设我想解析以下XML: Homer Simpson 我可以在XStream中执行此操作,如下所示: User homer = (User) xstream.fromXML(xml); 好的,到目前为止一切都很好,但这是我的问题。 假设我有以下要解析的XML: Homer Simpson […]

Java使用XStream读取XML

我正在尝试使用XStream反序列化此XML文件,我收到此错误 Exception in thread “main” com.thoughtworks.xstream.converters.ConversionException: Authors : Authors —- Debugging information —- message : Authors cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException cause-message : Authors class : java.util.ArrayList required-type : java.util.ArrayList converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter path : /ListOfDBook/DBook/Authors class[1] : com.test.books.ListOfDBook converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter version : null ——————————- at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306) at […]

XStream:在我解析时折叠XML层次结构

我有一个XML文档(由Adobe XFA表单生成),其中包含如下数据: 由于此文件是在其他地方定义的,因此我无权更改我获得的XML格式。 在我的Java代码中,我创建了一个包含Title,Start和End Dates的Position类。 我的问题是,当我使用XStream来解析文件时,它需要一个PositionBorder类来保存标题和日期。 我想基本上忽略边框并将所有字段放入Position类。 我真正想做的是使用像convertAnother方法这样的东西来转换position元素的子元素。 我试图这样做但它失败了,因为我的PositionConverter被调用了PositionBorder(当我调用convertAnother时)。 任何人都有任何线索在解析时如何处理折叠XML的结构?

XStream解析没有根节点的JSON

我目前正在使用XStream对JSON进行反序列化,并且它一直运行良好。 但是,当我有如下JSON字符串时 { key1: { an_object: { something: ‘foobar’ } }, key2: { another_object: { data: ‘hi’ } } 最值得注意的是它没有根节点,我不知道如何解析它。 基本上,我希望DROP_ROOT_NODE与反序列化相反。

在将对象序列化为XML时如何添加XML命名空间(xmlns)

我在XStream的帮助下将对象序列化为XML。 如何告诉XStream将xmlns插入到对象的XML输出中? 举个例子,我有这个想要序列化的简单对象: @XStreamAlias(value=”domain”) public class Domain { @XStreamAsAttribute private String type; private String os; (…) } 如何使用XStream实现以下输出? linux

XStream的安全框架未初始化,XStream可能容易受到攻击

Security framework of XStream not initialized, XStream is probably vulnerable 使用XStream(1.4.10)时,我一直将此控制台错误显示为红色 我尝试了以下方法: XStream.setupDefaultSecurity(xs); 和 xs.addPermission(AnyTypePermission.ANY); xs.addPermission(NoTypePermission.NONE); 没有一个摆脱它。 我不需要任何花哨的安全设置,我只想沉默那个警告。 也许还准备1.5.x的代码

XStream序列化和反序列化中的多态性

我有这些课程: @XStreamAlias(“person”) public class PersonConfig { private AnimalConfig animalConfig; } public interface AnimalConfig {} @XStreamAlias(“dog”); public class DogConfig extend AnimalConfig {} @XStreamAlias(“cat”); public class CatConfig extend AnimalConfig {} 我希望能够使用上面的类反序列化这个xml: 除了反序列化这个xml,使用相同的类: 因此,在这两种情况下, PersonConfig的字段animalConfig填充。 在带有DogConfig实例的第一个XML和带有DogConfig实例的第二个XML中。 这是否可以通过添加一些注释来使其工作?