【问题标题】:Groovy: Json to XML dynamicGroovy:Json 到 XML 动态
【发布时间】:2023-03-26 13:30:01
【问题描述】:

我们有一个像下面这样的json

{
  "test" : { 
    "a" : "A", 
    "b" : "B"
  }
}

要生成的最终 XML 结果是测试 json 对象中是否存在应该转换为 XML 的元素,并且要添加另一个 XML 标记以证明存在的元素是真实的。 如下:

<test>
  <message>
    <a>A</a>
    <b>B</b>
  </message>
  <booleanMessage>
    <a>true</a>
    <b>true</b>
  </booleanMessage>
</test>

我们如何使用 groovy 转换来做到这一点?

感谢任何帮助。

谢谢!

【问题讨论】:

  • 没有直接的方法,你必须为它编写自己的解析器。

标签: json xml groovy


【解决方案1】:

您可以结合使用JsonSlurper 和MarkupBuilder 来实现此目的。

def json = new groovy.json.JsonSlurper().parseText('''
    {
      "test" : { 
        "a" : "A", 
        "b" : "B"
       }
    }
''')

def sw = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(sw)

json.each { prop ->
    xml."$prop.key" {
        message {
            prop.value.each { nestedProp ->            
                "$nestedProp.key"(nestedProp.value)
            }   
        }
        booleanMessage {
            prop.value.each  { p ->
                "$p.key"('true')
            }               
        }
    }
}
println sw.toString()

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多