2

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

正如所料,网络搜索主要返回带有 groovy/json 运行时转换内容的结果,但没有关于输出 groovy 代码的内容。

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

4

3 回答 3

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 模式可能很少见)。

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

于 2012-12-14T14:31:46.133 回答
1

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

您可以使用(第 3 方)Jackson 的数据绑定功能填充您编写的更具体的自定义对象以表示您的 JSON 实体(也请参阅此问题)。

于 2012-12-14T14:34:28.420 回答
-3

尝试使用像这样的 JSON 解析器。根据它的文档,你只需要做

JSON.parse

反序列化数据

于 2012-12-14T12:59:44.880 回答