我希望你们能帮助我理解如何从一个If语句中从有效载荷的不同部分访问多个属性。下面我有一个例子。我遇到的问题是,我需要时间和其他语句来跨数组中每一项的内容工作。目前,它只在数组中只有一个项时才能工作。
模式:
{
"if": {
"allOf": [
{
"properties": {
"report_body": {
"properties": {
"afs_employee_director_rep": {
"items": {
"properties": {
"afs_emp_rep_Capacity": {
"contains": {
"const": "Current director of licensee"
}
}
},
"required": [
"afs_emp_rep_Capacity"
]
}
}
}
}
}
},
{
"properties": {
"report_body": {
"properties": {
"licensees_schemes_rep_involved": {
"properties": {
"report_submit_licensee": {
"const": "Yes"
}
},
"required": [
"report_submit_licensee"
]
}
}
}
}
}
]
},
"then": {
"properties": {
"report_body": {
"properties": {
"afs_employee_director_rep": {
"items": {
"required": [
"afs_emp_rep_verify"
]
}
}
}
}
}
},
"else": {
"not": {
"properties": {
"report_body": {
"properties": {
"afs_employee_director_rep": {
"items": {
"required": [
"afs_emp_rep_verify"
]
}
}
}
}
}
}
}
}这没有如预期的那样进行验证:
{
"report_body": {
"licensees_schemes_rep_involved": {
"report_submit_licensee": "Yes",
"report_licensee_types": "AFS licence",
"report_responsible_entity": "No",
"report_cciv_corporate_dir": "No",
"report_committed_entity": "Representative(s)",
"representative_ReportableSituationRelate": "Employee/director of licensee or related body corporate (who is not a financial adviser)"
},
"other_afs_licensees": [
"234563"
],
"afs_employee_director_rep": [
{
"afs_emp_rep_Capacity": [
"Current director of licensee"
],
"afs_emp_rep_work_monitored": "No",
"afs_emp_rep_verify_1": "No"
}
]
}
}这并不意味着:
{
"report_body": {
"licensees_schemes_rep_involved": {
"report_submit_licensee": "Yes",
"report_licensee_types": "AFS licence",
"report_responsible_entity": "No",
"report_cciv_corporate_dir": "No",
"report_committed_entity": "Representative(s)",
"representative_ReportableSituationRelate": "Employee/director of licensee or related body corporate (who is not a financial adviser)"
},
"other_afs_licensees": [
"234563"
],
"afs_employee_director_rep": [
{
"afs_emp_rep_Capacity": [
"Current director of licensee"
],
"afs_emp_rep_work_monitored": "No",
"afs_emp_rep_verify_1": "No"
},
{
"afs_emp_rep_Capacity": [
"Former director of licensee"
],
"afs_emp_rep_work_monitored": "No",
"afs_emp_rep_verify_1": "No"
}
]
}
}谢谢
发布于 2022-11-12 01:37:59
我会使用嵌套的oneOf重写它:每个afs_employee_director_rep条目都需要不包含“当前许可方的主管”字符串,或者,如果包含它,则还需要afs_emp_rep_verify键。
{
"allOf":[
{
"properties":{
"report_body":{
"properties":{
"afs_employee_director_rep":{
"items":{
"oneOf":[
{
"properties":{
"afs_emp_rep_Capacity":{
"contains":{
"const": "Current director of licensee"
}
}
},
"required":[
"afs_emp_rep_Capacity",
"afs_emp_rep_verify"
]
},
{
"properties":{
"afs_emp_rep_Capacity":{
"not":{
"contains":{
"const":"Current director of licensee"
}
}
}
},
"required":[
"afs_emp_rep_Capacity"
]
}
]
}
}
}
}
}
},
{
"properties":{
"report_body":{
"properties":{
"licensees_schemes_rep_involved":{
"properties":{
"report_submit_licensee":{
"const":"Yes"
}
},
"required":[
"report_submit_licensee"
]
}
}
}
}
}
]
}这样,您的第二个示例将失败,而下面的修改示例(注意,它包含afs_emp_rep_verify)将被接受。
...
{
"afs_emp_rep_Capacity": [
"Current director of licensee"
],
"afs_emp_rep_work_monitored": "No",
"afs_emp_rep_verify": "No"
},
...https://stackoverflow.com/questions/74310764
复制相似问题