Groovy JsonOutput.toJson(对象)返回空字符串

Groovy JsonOutput.toJson(对象)返回空字符串,json,serialization,groovy,Json,Serialization,Groovy,我正在使用groovy JsonOuput.toJson()将groovy类实例转换为json 但是它总是在这个特定的类上返回一个空字符串 我尝试使用其他工具JsonBuilder(),但同样的情况也发生了 也删除了@NonCps注释,但保留了空字符串结果 ImportTestsRequest request //initialized String json = JsonOutput.toJson(request) import com.cloudbees.groovy.cps.NonCPS

我正在使用groovy JsonOuput.toJson()将groovy类实例转换为json

但是它总是在这个特定的类上返回一个空字符串

我尝试使用其他工具JsonBuilder(),但同样的情况也发生了

也删除了@NonCps注释,但保留了空字符串结果

ImportTestsRequest request //initialized
String json = JsonOutput.toJson(request)
import com.cloudbees.groovy.cps.NonCPS
类ImportTestRequest实现可序列化{
邮票
列表测试=新建ArrayList()
无效添加测试(测试){
测试。添加(测试)
}
字符串getStamp(){
盖印
}
列表getTests(){
返回测试
}
公共静态ImportTestRequestBuilder生成器(){
返回新的ImportTestRequestBuilder()
}
布尔等于(o){
如果(this.is(o))返回true
如果(!(o instanceof importsetsRequest))返回false
ImportSetsRequest,它=(ImportSetsRequest)o
if(tests!=that.tests)返回false
如果(stamp!=that.stamp)返回false
返回真值
}
int hashCode(){
整数结果
结果=(stamp!=null?stamp.hashCode():0)
result=31*result+(tests!=null?tests.hashCode():0)
返回结果
}
@非现金
@凌驾
公共字符串toString(){
返回“ImportTestRequest{”+
“stamp=”+stamp+“\”+
“,tests=“+测试+
'}';
}
公共静态最终类ImportTestRequestBuilder{
私有字符串stamp=“”
私有列表测试=新建ArrayList()
私有ImportSetsRequestBuilder(){
}
公共导入TSRequestBuilder戳记(字符串戳记){
这张邮票
还这个
}
公共ImportTestRequestBuilder请求(列表测试){
这个。测试=测试
还这个
}
公共测试(测试){
请求。添加(测试)
}
public ImportSetsRequest生成(){
ImportSetsRequest ImportSetsRequest=新的ImportSetsRequest()
importTestsRequest.tests=此.tests
importTestRequest.stamp=this.stamp
返回ImportSetsRequest
}
}
}

原因可能是什么?

为什么不使用@Builder注释?
import com.cloudbees.groovy.cps.NonCPS

class ImportTestsRequest implements Serializable {
    String stamp
    List<Test> tests = new ArrayList<>()

    void addTest(Test test) {
        tests.add(test)
    }

    String getStamp() {
        return stamp
    }

    List<Test> getTests() {
        return tests
    }

    public static ImportTestsRequestBuilder builder() {
        return new ImportTestsRequestBuilder()
    }

    boolean equals(o) {
        if (this.is(o)) return true
        if (!(o instanceof ImportTestsRequest)) return false

        ImportTestsRequest that = (ImportTestsRequest) o

        if (tests != that.tests) return false
        if (stamp != that.stamp) return false

        return true
    }

    int hashCode() {
        int result
        result = (stamp != null ? stamp.hashCode() : 0)
        result = 31 * result + (tests != null ? tests.hashCode() : 0)
        return result
    }

    @NonCPS
    @Override
    public String toString() {
        return "ImportTestsRequest{" +
                "stamp='" + stamp + '\'' +
                ", tests=" + tests +
                '}';
    }

    public static final class ImportTestsRequestBuilder {
        private String stamp = ""
        private List<Test> tests = new ArrayList<>()

        private ImportTestsRequestBuilder() {
        }

        public ImportTestsRequestBuilder stamp(String stamp) {
            this.stamp = stamp
            return this
        }

        public ImportTestsRequestBuilder requests(List<Test> tests) {
            this.tests = tests
            return this
        }

        public void addTests(Test test) {
            requests.add(test)
        }

        public ImportTestsRequest build() {
            ImportTestsRequest importTestsRequest = new ImportTestsRequest()
            importTestsRequest.tests = this.tests
            importTestsRequest.stamp = this.stamp
            return importTestsRequest
        }
    }
}