问题描述
我的输入json
{
"properties": [
{
"uniqueId": "100","type": "boolean","required": true,"deFinition": false,"description": "is bundled or not","password": false,"name": "isBundled","value": "true","defaultValue": true,"hidden": false,"immutable": false,"isDeclaredListInput": false,"getInputProperty": false,"empty": false,"country": "asdsa"
}
]
}
根据是否存在defaultValue,我们需要在serviceSpecCharacteristicValueValue内部有一个字段– isDefault –如果值存在则为true,否则为false
这是我的规格
[
{
"operation": "shift","spec": {
"properties": {
"*": {
"name": "serviceSpecCharacteristic[&1].name","description": "serviceSpecCharacteristic[&1].description","type": "serviceSpecCharacteristic[&1].valueType","required": "serviceSpecCharacteristic[&1].required","defaultValue":"serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[].value"
}
}
}
}
]
当前输出
{
"serviceSpecCharacteristic" : [ {
"name" : "isBundled","description" : "is bundled or not","valueType" : "boolean","required" : true,"serviceSpecCharacteristicValue" : [ {
"value" : "true"
} ]
} ]
}
预期的输出:-根据是否存在defaultValue,我们需要在serviceSpecCharacteristicValueValue内部有一个字段– isDefault –如果值存在,则为true
{
"serviceSpecCharacteristic" : [ {
"name" : "isBundled","serviceSpecCharacteristicValue" : [ {
"value" : "true","isdefault":true
} ]
} ]
}
解决方法
如果原始JSON中不存在,则将defaultValue添加为false。然后使用移位操作。
[
{
"operation": "modify-default-beta","spec": {
"properties": {
"*": {
//set defaultValue to false if it does not exists.
"defaultValue": "false"
}
}
}
},{
"operation": "shift","spec": {
"properties": {
"*": {
"name": "serviceSpecCharacteristic[&1].name","description": "serviceSpecCharacteristic[&1].description","type": "serviceSpecCharacteristic[&1].valueType","required": "serviceSpecCharacteristic[&1].required","value": "serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[&1].value","defaultValue": "serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[&1].isdefault"
}
}
}
}
]
编辑1:
检查defaultValue
是否为假,然后将isdefault
设置为false,否则将isdefault
设置为true。
[
{
"operation": "modify-default-beta","defaultValue": {
"false": {
"#false": "serviceSpecCharacteristic[&3].isdefault"
},"*": { "#true": "serviceSpecCharacteristic[&3].serviceSpecCharacteristicValue[&3].isdefault" }
}
}
}
}
}
]