从Json转换为groovy CODE?

时间:2012-12-14 12:29:40

标签: java json groovy converter

对于奇怪的情况,这是一个奇怪的问题。我有一个很大的JSON结构,我想在运行groovy代码时表示。我需要与JSON对象镜像相同结构的groovy对象。

正如预期的那样,网页搜索主要通过groovy / json运行时转换内容返回结果,但没有任何关于输出groovy代码的内容。

你可能认为这很懒,但实际上它是一个庞大的JSON结构!转换器可以节省数天!

3 个答案:

答案 0 :(得分:3)

您可以使用Groovy自己的JsonSlurper来解析JSON对象:

import groovy.json.*

def json = '{"name":"john", "surname":"doe", "languages": ["groovy", "python"]}'

def obj = new JsonSlurper().parseText(json)

assert obj.name == "john"
assert obj.surname == "doe"

assert obj.languages.containsAll("python", "groovy")

当然这个类是无类型的:它只在运行时才知道。如果您希望键入它,可以根据示例编写编写代码的代码(因为json schema可能很少见。)

编辑:如果要生成模型类代码,可以尝试JSONGen,“解析JSON以创建客户端源文件以模拟JSON数据结构”。我不知道Groovy的解决方案,但由于java-groovy集成是无缝的,它应该可以正常工作。

答案 1 :(得分:1)

如果你想要一个你的JSON的Groovy表示,你可以通过内置的JsonSlurper来获得它。这将为您提供Java Maps和您可以使用的数据列表。

您可以使用(第三方)杰克逊data binding functionality填充您编写的更具体的自定义对象以代表您的JSON实体(请参阅this question)。

答案 2 :(得分:-2)

尝试使用this one之类的JSON解析器。根据其文档,你只需要做

JSON.parse

反序列化数据