- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试找到获取资源的最佳方法,以某种方式指示应该用于验证它的架构。
我需要这个,因为有时我可能需要返回一个充满不同资源的数组。在这种情况下,我需要数组中的每个资源来告诉我应该使用什么模式来验证它。
最好的方法是什么?
我的想法是使用嵌套的 JSONSchema,其中外部对象具有资源的名称(例如汽车):
{
'type': 'object',
'properties': {
'car': {
{
'type': 'object',
'title': 'car',
'properties': OrderedDict([('id', {
'type': 'integer'
})]),
'required': ['id']
}
},
'required': [
'car'
]
}
然后我可以在资源中清楚地看到应该使用哪个模式进行验证:
{
'car': {
'id': 1,
}
}
然后,在我需要返回一组不同资源的情况下,可以轻松地正确识别和验证每个资源:
{
'items': [
{
'car': {
'id': 1,
}
},
{
'helicopter': {
'id': 1,
}
},
]
}
最佳答案
在 JSON Schema 中处理此类问题的方法是使用 anyOf
约束。
{
"type": "array",
"items": {
"anyOf": [
{ "$ref": "car.json" },
{ "$ref": "helicopter.json" }
]
}
}
这样,客户端不需要告诉您要使用什么模式,您只需告诉客户端允许使用哪些模式。只要数组中的每个项目都匹配可能的选项之一,验证就会成功。
如果您需要更具体地了解数组中的项目,可以重构架构以隔离类型。
关于python - JSONSchema 暗示其架构的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650927/
我需要在我的网站中实现自动建议功能,并且我需要一些易于开发或编辑的 java 脚本框架或代码,并且自动建议将是多个字段 最佳答案 适配 jQuery:http://jqueryui.com/ 关于ja
在下面的示例中,SonarQube 提示 model.toString() 是 not null 并且 (model == null) 始终 false,需要一些帮助来了解可以采取哪些措施来修复它。因
我正在尝试创建自定义 iOS 键盘。我使用 UILexicon 类来提供 requestSupplementaryLexiconWithCompletion: 方法提供的基本词库。 但我也想将预测文本
如何断言如果 X 为 true 那么 Y 也为 true。问题是,如果我写以下内容: assert(X && Y && "If X is true then Y should be true too.
创建路径中包含两个反斜杠的文件时,是否会产生任何不可预见的后果。 在此代码中,文件创建正常,但我想知道在使用此文件的过程中是否有任何副作用。 HANDLE hFile = CreateFile(
在下面的示例中,SonarQube 提示 bookmark 可能为 null 或为 null,需要一些帮助来了解可以采取哪些措施来修复它。因为 bookmark 在 for 循环中被初始化为变量,并且
这个问题在这里已经有了答案: Partial ordered Comparator (6 个答案) 关闭 8 年前。 我有一组序列化到文件中的项目。有些项目可以依赖其他项目,但不允许循环引用。因此,
我想创建将始终使用 gcc/g++/clang 支持的 C/C++ 标准的“最新”版本的 shell 别名/clang++(C的一个别名,C++的一个别名)。我意识到这可能有多种解释: 最新的 GNU
我是一名优秀的程序员,十分优秀!