【问题标题】:read xml with java e mapper in json with objectmapper使用 objectmapper 在 json 中使用 java e mapper 读取 xml
【发布时间】:2015-01-20 09:50:52
【问题描述】:

我有这个问题要问你。
我有一个简单的文件 xml,我必须将它转换为文件 Json。到目前为止一切正常,但是返回给我的输出格式不正确。
这是代码:
modalities.xml

<cons>
    <modalities type="mod">
        <modality id="001">
            <name>CC</name>
        </modality>
        <modality id="002">
            <name>RS</name>
        </modality>
        <modality id="003">
            <name>TC</name>
        </modality>
        <modality id="004">
            <name>US</name>
        </modality>
   </modalities>

还有 ListModalities.java

{ ...
 String path = "modalities.xml";
        ModalitiesMapperImpXml modXml = new ModalitiesMapperImpXml();
        if (modality.equals("list")) 
            modXml.load(path); //The method return the list that contain the name of modality ( CC - US )
    try {
        ObjectMapper mp = new ObjectMapper();
        return mp.writeValueAsString(modXml);
        }
        catch (JsonProcessingException jpe) {
            return jpe.getMessage();
        }
}

输出:

{"modalities":[{"value":"\n\t\t\n\t\t\tCC\n\t\t\n\t\t\n\t\t\tRS\n\t\t\n\t\t\n\t}]}

如何删除空格和制表符? 你能帮助我吗?谢谢

注意 维生素

【问题讨论】:

  • 你需要展示你是如何阅读 xml 的。 ModalitiesMapperImpXml.java?
  • public void readListModality() { try { SAXBuilder builder = new SAXBuilder();文档 doc = builder.build(new File(pathfile));元素 rootElement = doc.getRootElement();列出孩子 = rootElement.getChildren("modalities");迭代器 iterator = children.iterator(); while (iterator.hasNext()){ 元素元素 = (Element)iterator.next();模式 mod1 = 新模式(); mod1.setValue(element.getValue()); this.addItem(mod1); } }

标签: java xml json


【解决方案1】:

问题在于您如何迭代 XML:

element.getNodeValue()

应该替换为

element.getTextContent()

【讨论】:

  • 您使用的是哪个元素类?我以为它会是 org.w3.dom.Element。
  • 是的,抱歉来晚了,我已经使用接口Node解决了问题,
猜你喜欢
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
相关资源
最近更新 更多