2013-04-23 97 views
1

我刚刚下载了最新的jackson-module-jsonSchema(2.2.0)并想知道是否有人能够提供一个用于为复杂Java类型生成模式的示例(例如包含一些SubObjectList<SubObject>)?Jackson JSON模式生成复杂的Java类型

我是能够成功地创造了“扁平”架构有以下几点:在何种意义上

ObjectMapper m = new ObjectMapper(); 
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper(); 
m.acceptJsonFormatVisitor(m.constructType(RuleSet.class), visitor); 
JsonSchema jsonSchema = visitor.finalSchema(); 
return jsonSchema; 
+0

你能显示'RuleSet'和引用类型的定义吗?这可以更容易地看到生成的内容。 – StaxMan 2013-04-25 00:59:25

+0

@StaxMan所以我意识到我用JsonPoperty注解注解的属性返回的是Object []的实例,而不是List 。显然,杰克逊在这一点上不能确定任何东西,所以它将它留在物业名下。当我切换到列表 Jackson按预期行事并填写了MyObject的模式。 – Tom 2013-04-25 20:17:10

+1

啊!是的,这将解释它。尽管如果有一个占位符可以指出问题,它会很好。 – StaxMan 2013-04-25 20:18:33

回答

1

实例?您应该能够使用根类型生成模式,并且引用类型应该递归地生成模式定义。

+0

在我上面的示例中,RuleSet类是一个复杂类型,但生成的模式是平坦的;没有为引用类型生成的模式。我错过了什么吗? – Tom 2013-04-24 16:20:07

+0

好的。我的理解是,引用类型也应该在模式中定义。但我没有广泛使用这个模式。 – StaxMan 2013-04-25 00:57:07