我在Restlet中使用StringRepresentation java类将xml字符串转换为json字符串。我的xml字符串中有一个“type”属性,例如:
<contacts>
<contact index="0" type="type1" name="contact1">
<contact index="1" type="type2" name="contact2">
</contacts>
转换后,我发现除了json字符串结果中没有的属性“type”外,一切正常。
我知道“type”在很多情况下都是一个特殊名称。在Restlet中是否有任何配置我可以设置为让StringRepresentation类将“type”视为公共属性名称?
答案 0 :(得分:2)
我自己解决了。答案是XMLSerializer中的setTypeHintsEnabled(false)。 XMLSerializer过滤掉属性“type”,而不是StringPresentation。这是代码:
XMLSerializer serializer = new XMLSerializer();
serializer.setTypeHintsEnabled(false);
result = new StringRepresentation(serializer.read(xml).toString(), MediaType.APPLICATION_JSON, Language.ALL, CharacterSet.UTF_8);