使用Groovy';s JsonSlurper用于实际POGO映射?

使用Groovy';s JsonSlurper用于实际POGO映射?,json,groovy,Json,Groovy,我见过无数用于解析JSON文本并从中创建“JSON对象”的示例: def jsonObject = jsonSlurper.parseText(jsonText) 但是如果JSON文本代表我的FizzBuzz对象呢?我可以使用JsonSlurper将JSON对象映射到FizzBuzz实例中吗?如果是这样,怎么做?使用JsonSlurper解析JSON后,您将收到一个映射。如果FizzBuzz具有Map(请参阅)构造函数,则在将解析后的Map传递给构造函数时,它应该可以工作 请参见以下示例: i

我见过无数用于解析JSON文本并从中创建“JSON对象”的示例:

def jsonObject = jsonSlurper.parseText(jsonText)

但是如果JSON文本代表我的
FizzBuzz
对象呢?我可以使用
JsonSlurper
将JSON对象映射到
FizzBuzz
实例中吗?如果是这样,怎么做?

使用
JsonSlurper
解析JSON后,您将收到一个
映射。如果
FizzBuzz
具有
Map
(请参阅)构造函数,则在将解析后的
Map
传递给构造函数时,它应该可以工作

请参见以下示例:

import groovy.json.JsonSlurper

def json = """{ "name": "John", "age": 127 }"""
def parsed = new JsonSlurper().parseText(json)

def person = parsed as Person

assert person.age == 127
assert person.name == 'John'

class Person {
    String name
    int age    
}

谢谢@Opal(+1)-下面有两个问题:(1)我的
FizzBuzz
实例没有显式构造函数,因此它依赖于Groovy提供的默认构造函数;这是否意味着我有一张地图?(2)如果我想映射另一个对象,但是这个对象(我们称之为
Widget
上有几个明确定义的构造函数?在这种情况下,
JsonSlurper
还能使用吗?再次感谢!如果根本没有提供构造函数,映射构造函数将工作。在第二种情况下,它不会在所有情况下都工作。好的。所以你需要提供空构造函数或根本没有构造函数才能使它工作。)k、 感谢您检查@Opal(+2)-因此,如果我有显式值(非默认)构造函数,那么我将不得不使用诸如GSON或Jackson之类的JSON映射器来处理映射?是的,或者使用
JsonSlurper
并使用适当的构造函数从映射中传递值,例如
newsomeObject(parsed.key1,parsed.key2)