public class Category {
private Map<String, List<String>> categoryMapping;
}
{
"categoryMapping": {
"categoryA": ["a","b","c"],
"categoryB": ["x","y","z"],
"categoryC": ["x","y","z"]
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "$id$",
"description": "list_of_values-1",
"required": [
"categoryMapping"
],
"properties": {
"categoryMapping": {
"$id": "#/properties/categoryMapping",
"type": "object",
"title": "The categoryMapping Schema",
"properties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "$id$",
"description": "list_of_values-1",
"properties": {
"categoryMapping": {
"$id": "#/properties/categoryMapping",
"type": "object",
"title": "The Categorymapping Schema",
"required": [
"categoryA",
"categoryB",
"categoryC"
],
"properties": {
"categoryA": {
"$id": "#/properties/categoryMapping/properties/categoryA",
"type": "array",
"title": "The Categorya Schema",
"items": {
"$id": "#/properties/categoryMapping/properties/categoryA/items",
"type": "string",
"title": "The Items Schema",
"default": "",
"examples": [
"a",
"b",
"c"
],
"pattern": "^(.*)$"
}
},
"categoryB": {
"$id": "#/properties/categoryMapping/properties/categoryB",
"type": "array",
"title": "The Categoryb Schema",
"items": {
"$id": "#/properties/categoryMapping/properties/categoryB/items",
"type": "string",
"title": "The Items Schema",
"default": "",
"examples": [
"x",
"y",
"z"
],
"pattern": "^(.*)$"
}
},
"categoryC": {
"$id": "#/properties/categoryMapping/properties/categoryC",
"type": "array",
"title": "The Categoryc Schema",
"items": {
"$id": "#/properties/categoryMapping/properties/categoryC/items",
"type": "string",
"title": "The Items Schema",
"default": "",
"examples": [
"x",
"y",
"z"
],
"pattern": "^(.*)$"
}
}
}
}
}
}
因此,您的示例JSON实际上是一个具有三个属性的类型,这就是为什么您生成的模式要求您显式定义每个属性,即使它们实际上是相同的类型。
但是,如果您愿意稍微修改您的示例json:
{
"categoryMapping": [
{
"name": "categoryA",
"map": ["a","b","c"]
},
{
"name": "categoryB",
"map": ["x","y","z"]
},
{
"name": "categoryC",
"map": ["x","y","z"]
}
]
}
然后可以使用以下模式验证它:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"categoryMapping": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"map"
],
"properties": {
"name": {
"type": "string"
},
"map": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
问题内容: 我正在将此问题设置为“ FizzBuzz”,而我的switch语句给了我一些问题,这是我的代码: 如果您可以为我提供指针/提示,而不是给我正确的代码,那将是一件好事:D我宁愿自己解决它,但一些提示也可以使我摆脱困境。 问题答案: 您可以在单独检查它们之前使用并检查两者是否匹配:
有四种不同的类型:地点、语言、技术和行业。每个类型都有一个存储库,可以返回这些类型的集合。例如位置列表。每个类型都有一个类型为String的name属性。有一个字符串列表。它可以包含位置、语言等名称。我想编写一个函数来查找那些与字符串列表名称匹配的类型实体(位置、语言、...)。我在想这样的事情: 这是不正确的,那么如何对集合进行查询,然后如何确定name属性是否存在呢?
我有一个从提取的代码,对于多个子类来说,这个代码看起来应该完全相同,所以我尽量避免重复。但是,实际上(见下文),scala认为是一个泛型的,返回的值类型为,当然,它没有和方法。 问题是在这里避免重复的适当方法是什么?我对将转换为字符串并不那么着迷,因为这段代码可以使用刚从字符串解析为AST的json。我开始考虑为我需要的三种类型编写包装器,并将这些类型的匹配和隐式转换器转换为包装器,然后为这些包装
我想消除此示例代码中的类型擦除警告: 它编译和工作正常,但有一个警告: 警告:(31,13)类型模式Seq[Int](Seq[Int]的底层)中的非变量类型参数Int未选中,因为它被擦除情况b消除:Seq[Int]= 在这种情况下,你有什么简单的解决方案来避免擦除吗? 到目前为止,我尝试了什么(根据这一点): 但是它不能编译,因为c现在是Any类型。 我相信这个问题有几种解决方法。我会接受最简单的