无法通过Restlet StringRepresentation类将xml字符串中的“type”转换为json字符串

时间:2012-11-01 20:11:33

标签: java xml json restlet

我在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”视为公共属性名称?

1 个答案:

答案 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);