Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy JsonBuilder大写字段名_Json_Groovy_Jsonbuilder - Fatal编程技术网

Groovy JsonBuilder大写字段名

Groovy JsonBuilder大写字段名,json,groovy,jsonbuilder,Json,Groovy,Jsonbuilder,我正在使用Groovy JsonBuilder生成JSON以通过HTTP发送。 我的问题是它把地图上的一些键大写了 我给它一个这个类的对象: public class TestSNP { private String snpID; TestSNP(String input) { snpID = input.split("\\s+")[1]; } String getSNPID() { return snpID; } }

我正在使用Groovy JsonBuilder生成JSON以通过HTTP发送。 我的问题是它把地图上的一些键大写了

我给它一个这个类的对象:

public class TestSNP {
    private String snpID;

    TestSNP(String input) {
        snpID = input.split("\\s+")[1];
    }

    String getSNPID() {
        return snpID;
    }
}
这是失败的测试:

import groovy.json.*

class Test {
    @Test
        void jsonBuilderTest() {
            def testSNP = new TestSNP("1 rs444444 2 3")
            assert new groovy.json.JsonBuilder(testSNP).toString() == '{"snpID":"rs444444"}'
        }
}
我明白了

而不是

{"snpID":"rs444444"}
(这是一个演示我的问题的简化示例)

更改:

String getSNPID() {
    return snpID;
}
致:


蒂姆·耶茨(tim_yates)说,这可能会很有用,不是吗。我已经添加了引起问题的线路。谢谢。答案是:它不。。。Groovy没有将条目大写。他们会保留地图上所有的资本。。。ie:
assert new groovy.json.JsonBuilder([[snps:[[snpID:'rs444444']]]])。toString()='[{“snps”:[{“snpID:'rs444444'}]}]'
在GroovyTanks中可以很好地工作,这确实有效。表明问题出在我的类上,比如:assert new groovy.json.JsonBuilder([[snps:[new domain.SNP(“1 rs444444 2 3”)]])。我来看看我是否能想出一个有同样问题的简化例子,省得把我的整个类放在这里。你的
SNP
类中的字段(或getter)称为
SNPID
getSNPID
?是的,这正是问题所在。我在整理这个简化的例子的时候计算出来的。我没有考虑到它必须使用getter,因此猜测我在变量命名中使用的约定。可能还值得注意的是,它还查找isSomething()方法,并将添加布尔“something”变量。是的,它遵循了getter命名的Java Beans规范:-)
String getSNPID() {
    return snpID;
}
String getSnpID() {
    return snpID;
}