我是json架构的新手,我很难找到解决问题的方法。 我需要使用下面显示的模式将服务器发送的数据填充到json编辑器中。
注意:这只是架构的一小部分。 我有一个json模式,如下所示:
{
"id": "#ProcessApplicationList",
"type": "array",
"title":"ProcessApplicationList",
"description":"List of process application.",
"items": {
"id": "#ProcessApplication",
"type": "object",
"required":[
"ProcessId",
"InputParameter"
],
"title":"ProcessApplication",
"description":"Process application.",
"properties": {
"ProcessId":{
"id":"#ProcessId",
"type":"string",
"title":"Identification code of process",
"description":"e.g. 'process#01'"
},
"InputParameter": {
"id": "#InputParameter",
"type": "object",
"additionalProperties": {
"anyOf": [
{ "type": "string" },
{ "type": "number" },
{ "type": "boolean"}
]
}
}
}
}
}
这是来自服务器的示例响应。
{
"Acceptability" : {
"ProcessList" : [
{
"ProcessId" : "process#01",
"ProcessName" : "sign",
"ProcessDescription":"sign your plug-in by using signature",
"ProcessAvailability" : true,
"ProcessParameterSchema" : {
"\"$schema\":\"http://json-schema.org/draft-04/schema#\",
\"sign_type\":{
\"id\":\"#sign_type\",
\"type\":\"string\",
\"title\":\"sign_type\"}
},
{
"ProcessId" : "process#02",
"ProcessName" : "encryption",
"ProcessDescription":"encrypt your plug-in by using key",
"ProcessAvailability" : true,
"ProcessParameterSchema" : {
"\"$schema\":\"http://json-schema.org/draft-04/schema#\",
\"enc_type\": {
\"id\":\"#enc_type\",
\"type\":\"string\",
\"title\":\"enc_type\"
}
}
}
]
}
}
JSON编辑器的输出应该是这样的: ![IMG] http://i61.tinypic.com/2r61r0k.png
我需要将“ProcessParameterSchema”的值设置为“InputParameter”。 我需要为“ProcessApplicationList”中的每个元素更新“InputParameter”。 由于“ProcessApplicationList”是一个数组,我不知道如何进行更新。 谢谢!
答案 0 :(得分:0)
我不确定这是否适用于您的具体情况,但一般的解决方案是使用json hyper-schema。
使用json超模式,您可以使用" schema"定义API可用操作。用于定义可接受的请求格式的属性。答案的模式可以通过" href"链接,因此客户端可以处理每个可能的架构。
第二个选项,如果你在客户端拥有所有可能的嵌套模式,那就是通过" oneOf"包含" href" s的集合的属性。在这种情况下,您可以使用这些href来进行适当的决定来验证和绘制UI。一个有趣的变化是将href解析为后端有效的URI(这是一种破解首先描述的HAL方法的方法)。