jsonschema2pojo生成类异常:仅首字段类型正确,其余为Object
问题原因分析与解决办法
嘿,这个问题其实一眼就能找到根源——问题出在你JSON Schema里的类型关键字大小写上!
JSON Schema规范明确要求,type字段的取值必须是小写的,比如"string"、"number"、boolean这类。而你第一个Schema里的bar和baz字段用了大写的"String",这完全不符合JSON Schema的标准格式:
{ "type":"object", "properties": { "foo": { "type": "string" }, // 小写,符合规范,能被正确识别 "bar": { "type": "String" }, // 大写,工具无法识别 "baz": { "type": "String" } // 大写,工具无法识别 } }
jsonschema2pojo是严格遵循JSON Schema规范的工具,当它遇到无法识别的类型值时,就会默认把字段类型设为Object——这就是为什么只有第一个用小写"string"的foo生成了正确的String类型,其他两个字段变成了Object。
修正方案
把所有类型值改成小写的"string"就可以解决问题,修正后的Schema如下:
{ "type":"object", "properties": { "foo": { "type": "string" }, "bar": { "type": "string" }, "baz": { "type": "string" } } }
另外你提供的第二个Schema,所有字段的类型都是小写的"string",完全符合规范,用它生成的Java类里所有字段都会是String类型,不会再出现Object的情况啦。
内容的提问来源于stack exchange,提问作者Geek
相关产品推荐
相关产品推荐

