使用Avro模式将XML转换为JSON

时间:2019-12-12 11:43:04

标签: json xml apache-nifi avro

我正在尝试使用apache nifi中的转换记录处理器将一些xml转换为json格式。

这是xml示例文件:

<objects>
  <object operation="add" name="test" id="4">
    <attribute name="friendlyname" datatype="STRING">I am a friendly name</attribute>
  </object>
</objects>

要实现此目的,我尝试使用以下json avro模式(已将其添加到转换记录处理器的控制器中):

{
  "type" : "record",
  "name" : "objects",
  "namespace" : "object",
  "fields" : [ {
    "name" : "name", "type" : "string"
  }, {
    "name" : "id", "type" : "string"
  }, 
  {
    "name" : "attribute",
    "type" : {
        "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "attribute",
              "namespace" : "attribute.object",
              "fields" : [ {
                "name" : "name",
                "type": "string"
              }]
            }
    }
  }
  ]
}

运行此命令时,当前输出以下json:

[ {
  "name" : "test",
  "id" : "4",
  "attribute" : [ {
    "name" : "friendlyname"
  }
} ]

我不知道如何从xml中的“属性”标签获取实际值。所以我在输出json中想要的是“ name”:“ friendlyname”以及在这种情况下应为'I is a friendly name'的值。我只是想知道使用模式是否真的可以做到这一点,以及这是我将如何去做呢?

任何帮助将不胜感激! :)

0 个答案:

没有答案