当前位置: 首页 > 面试题库 >

使用Groovy将JSON转换为XML?

慕容聪
2023-03-14
问题内容

我有一个JSON文件,在此JSON文件中使用解析器将其转换为XML格式,然后写回xml文件

我在Groovy中找不到有关如何执行此操作的任何示例

如果我有如下所示的JSON:

{
name: "sampleConfiguration",
description: "SampleDesc"
version: "1.0",
parameters: [
    {
        name: "sampleParameter",
        description: "parameter description",
        value: "20",
        enabled: "1"
    },
    {
        name: "items",
        description: "parameter with subparameters",
        value:[
            {
                name: "item",
                description: "nested parameter",
                value: "13"
            },
            {
                name: "item",
                description: "nested parameter 2",
                value: "TEST"
            }
        ]
    }
]}

然后,应将其转换为如下所示的XML:

<?xml version="1.0"?>
<sampleConfiguration version="1.0" description="SampleDesc">
<params>
    <sampleParameter enabled="1" description="parameter description">20</sampleParameter>
    <items description="parameter with subparameters">
        <item description="nested parameter">13</item>
        <item description="nested parameter 2">TEST</item>
    </items>
</params>
</sampleConfiguration>

我一直在寻找JSON到XML转换代码


问题答案:

如果您使JSON有效("将名称四舍五入,并且在初始块中加一个逗号),则可以执行此操作以将其转换(专门针对此示例)

def json = '''
{
    "name": "sampleConfiguration",
    "description": "SampleDesc",
    "version": "1.0",
    "parameters": [
    {
        "name": "sampleParameter",
        "description": "parameter description",
        "value": "20",
        "enabled": "1"
    },
    {
        "name": "items",
        "description": "parameter with subparameters",
        "value":[
            {
                "name": "item",
                "description": "nested parameter",
                "value": "13"
            },
            {
                "name": "item",
                "description": "nested parameter 2",
                "value": "TEST"
            }
        ]
    }
]}'''

import groovy.json.*
import groovy.xml.*

def xml = new JsonSlurper().parseText(json).with { j ->
    new StringWriter().with { sw ->
        new MarkupBuilder(sw)."$name"(version: version, description:description) {
            params {
                parameters.each { p ->
                    if(p.value instanceof List) {
                        "$p.name"(description:p.description) {
                            p.value.each { v ->
                                "$v.name"(description: v.description, v.value)
                            }
                        }
                    }
                    else {
                        "$p.name"(description:p.description, p.value)
                    }
                }
            }
        }
        sw.toString()
    }
}

println xml

我不知道将xml转换为json的一般情况。

该示例的输出为:

<sampleConfiguration version='1.0' description='SampleDesc'>
  <params>
    <sampleParameter description='parameter description'>20</sampleParameter>
    <items description='parameter with subparameters'>
      <item description='nested parameter'>13</item>
      <item description='nested parameter 2'>TEST</item>
    </items>
  </params>
</sampleConfiguration>


 类似资料:
  • 我非常习惯Grails转换器,在那里你可以像这样将任何对象转换成JSON表示(http://grails.org/Converters(参考) 但在纯groovy中,我找不到一种简单的方法来实现这一点(http://groovy-lang.org/json.html) 返回空json字符串... 我是否错过了一个明显的Groovy转换器?或者我应该去杰克逊图书馆还是格森图书馆?

  • 我正在编写一个jenkins管道,我需要将String参数转换为Long值。 我已经使用Long.value,Long.parse。我得到这个错误消息: Hudson . remoting . proxy exception:groovy . lang . missingmethodexception:没有方法的签名:java.lang.Class.parseLong()适用于参数类型:(java

  • 问题内容: 我在网络上看到了相当多的不费钱的XML-> JSON代码,并且与Stack的用户进行了一些互动,我坚信这一人群比Google搜索结果的前几页可以提供更多帮助。 因此,我们正在解析天气供稿,我们需要在许多网站上填充天气小部件。我们现在正在研究基于Python的解决方案。 这个公共weather.com RSS feed 是我们要解析的一个很好的例子( 由于有w / them的合作关系,我

  • 问题内容: 我打算通过将其编码为JSON来发送充满数据的Javascript数组对象。任何好的jQuery插件吗? 在Java端,将JSON解析为Java数组的标准方法是什么? 总体流程如下: Javascript会在当前页面上编译一堆数据并将其存储在数组中。 数组对象编码为JSON。 Java代码保存JSON。 对每个页面重复执行并用Java代码编译成功的JSON。 Java代码向服务器提交一个

  • 问题内容: 我正在尝试使用PHP将CSV文件转换为JSON。 这是我的代码 //我看到了所有数据 然后我尝试显示它,但是屏幕上什么都没有显示。我所看到的只是空白屏幕和0错误消息。 我做错什么了吗?有人能帮我吗 ? 的相加结果 问题答案: 尝试这样:

  • 问题内容: 下面是我从在线气象站提取的json结构。我还包括一个json_to_csv python脚本,该脚本应该将json数据转换为csv输出,但仅返回“ Key”错误。我只想从“ current_observation”中提取数据。 检索温度字符串并将其转换为.csv格式的最佳方法是什么?谢谢! 问题答案: 也许熊猫可以为您提供帮助。.read_json()函数创建一个不错的数据框,您可以从