0

我正在编写一个扩展类的类,该类使用 Digester 解析来自 API 的 XML 响应(现有类示例,下面的代码片段)。收到响应后,代码会创建一个对象并在其上添加特定的方法。

为简洁而编辑的代码片段:

      private Digester createDigester() {
        Digester digester = new Digester();

        digester.addObjectCreate("GeocodeResponse/result", GoogleGeocoderResult.class);
        digester.addObjectCreate("GeocodeResponse/result/address_component", GoogleAddressComponent.class);
        digester.addCallMethod("GeocodeResponse/result/address_component/long_name", "setLongName", 0);
...
        digester.addSetNext("GeocodeResponse/result/address_component", "addAddressComponent");

        Class<?>[] dType = {Double.class};
        digester.addCallMethod("GeocodeResponse/result/formatted_address", "setFormattedAddress", 0);
...
        digester.addSetNext("GeocodeResponse/result", "add");
        return digester;
      }
    }

但是,我将调用的 API 仅支持 JSON。我找到了一个可能的解决方案,它涉及将 JSON 转换为 XML,然后通过 Digester 运行它,但这似乎非常骇人听闻。

public JsonDigester(final String customRootElementName) {
    super(new JsonXMLReader(customRootElementName));
  }

有一个更好的方法吗?

4

1 回答 1

0

此类专门用于根据文档处理 XML:

基本上,Digester 包允许您配置 XML -> Java 对象映射模块,只要识别出嵌套 XML 元素的特定模式,就会触发称为规则的某些操作。您可以使用一组丰富的预定义规则,或者您也可以创建自己的规则。

为什么你会认为它可以与 JSON 一起使用?

于 2016-03-14T15:46:24.123 回答