我正在使用JSR 385 reference implementation中的SELECT dt.*
FROM
(SELECT c.id AS clients_id,
c.name AS clients_name,
s.id AS sites_id,
s.url AS sites_url
FROM clients AS c
CROSS JOIN sites AS s
) AS dt
LEFT JOIN clients_sites AS cs
ON cs.clients_id = dt.clients_id AND
cs.sites_id = dt.sites_id
WHERE cs.id IS NULL
-情况并非如此,只是想提一下子类型是通用的,我无法修改它。
这种情况是我正在使用Jackson JsonSchemaModule生成Json模式。 当前,我从该架构中收到的内容当然如下:
ComparableQuantity
Ofc,这不能给我太多帮助-它太具有表现力。 我已经有一个解析器,可以从字符串(带有验证)创建我的值并将其序列化为字符串(json中的10m将仅是“ 10 m”),并且我希望具有与模式相同的架构,例如:
{
"weight": {
"type": "object",
"id": "Mass>",
"required": true,
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "object",
"id": "Mass>",
"properties": {
"name": {
"type": "string"
},
...
}
}
}
}
}
我知道{
"weight": {
"type": "string",
"pattern": "[\\d,.]+\\s*(kg|t)",
"required": true
}
}
可以和Jdk8JacksonModule
类似,但是当我看到Optional
时,我已经通过了-甚至不确定是否是寻找的正确地点。
此外,我认为可以使用Jdk8OptionalBeanPropertyWriter
,也许可以使用ObjectMapper$acceptJsonFormatVisitor
-不确定。
我注意到的是,当我向架构序列化器(实际上是架构中的类序列化)添加SchemaFactoryWrapper#expectObjectFormat
序列化模块时,它将返回
ComparableQuantity
所以也许这是某种方式...
任何例子都不错:)。
答案 0 :(得分:1)
我已经完成了覆盖方法In [12]: df
Out[12]:
a date
0 prod1 2019/02/23
1 prod2 2999/01/02
In [13]: df.date.apply(pd.Period)
Out[13]:
0 2019-02-23
1 2999-01-02
Name: date, dtype: object
In [23]: df.date.apply(pd.Period)[1]
Out[23]: Period('2999-01-02', 'D')
的调用JsonSerializer#acceptJsonFormatVisitor
,并且要添加一个模式,我在visitor.expectStringFormat(type)
的构造函数中添加了visitor
。
此访问者基于JsonSchemaGenerator
,但是当然会取代com.fasterxml.jackson.module.jsonSchema.customProperties.ValidationSchemaFactoryWrapper
而不是expectObjectFormat
。