使用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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |