加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Groovy输出JSON

发布时间:2020-12-14 16:29:44 所属栏目:大数据 来源:网络整理
导读:我一直在尝试使用groovy Jsonbuilder,你可以在下面看到尝试查看构建 JSON对象和数组的不同方法.在事情开始变得有意义之后,我尝试扩展到下面显示的内容.我的问题是,为什么“内容”出现在json漂亮的字符串输出中?我实际上有另一个json对象在json字符串输出中
我一直在尝试使用groovy Jsonbuilder,你可以在下面看到尝试查看构建 JSON对象和数组的不同方法.在事情开始变得有意义之后,我尝试扩展到下面显示的内容.我的问题是,为什么“内容”出现在json漂亮的字符串输出中?我实际上有另一个json对象在json字符串输出中显示this.class信息.

有任何想法吗?我是新手,所以它肯定是一个明显的.

def tt = ["test","test1"]
                def jjj = "jason"
                def js3 = new groovy.json.JsonBuilder()
                def js2 = new groovy.json.JsonBuilder(tt);
                js3 hello: "$jjj","$jjj": tt
                def js4 = new groovy.json.JsonBuilder()
                def result = js4([sdn: js3,openflow: js2,type: 3])
                println js4.toPrettyString();


{
"sdn": {
    "content": {
        "hello": "jason","jason": [
            "test","test1"
        ]
    }
},"openflow": {
    "content": [
        "test","test1"
    ]
},"type": 3

}

解决方法

这个问题可以重述为……

为什么这样:

import groovy.json.*

def js3 = new JsonBuilder(["test","test1"])
def js4 = new JsonBuilder(js3)
println js4.toString()

打印:

{"content":["test","test1"]}

还有这个:

import groovy.json.*

def js3 = new JsonBuilder(["test","test1"])
def js4 = new JsonBuilder(js3.content)
println js4.toString()

打印这个(?):

["test","test1"]

简短的回答是JsonBuilder有一个名为content的成员,它代表了有效负载.当一个JsonBuilder吸收另一个时,我们想要替换有效负载,而不是嵌套它.这行是替换有效载荷的方法:

def js4 = new JsonBuilder(js3.content)

最终,这源于JsonBuilder.toString()(code here)调用JsonOutput.toJson(object)(code here)的事实.

读者的练习是试验:

class MyBuilder {
    def content
}

def myB = new MyBuilder(content: ["test","test1"])
println JsonOutput.toJson(myB)
println JsonOutput.toJson(myB.content)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读