我能够掌握json节点,我想设置其元素之一的值 这是Node的示例json,我想修改values元素。
{
"path": [
"General",
"simulationSet"
],
"type": "dropdown",
"label": "Simulation Set",
"placeholder": "Select Simulation Set",
"required": true,
"values": [
{
"label": "Events1",
"value": "Events1"
}
]
}
这是整个CodeSnippet,有人可以向我指出发生了什么问题。
val simSetArray: JsonArray = JsonPath.using(jsonConfiguration).parse(uiSchema).read(keyPath)
if (simSetArray.size() > 0) {
val simSetNode = simSetArray.get(0).getAsJsonObject
val simSetDomainValuesArray = new JsonArray
simulationSetList.foreach(simulationSet => {
val element = new JsonObject()
element.addProperty("label", simulationSet)
element.addProperty("value", simulationSet)
simSetDomainValuesArray.add(element)
})
//Only add the value in case the template does not have it already and the arrays are not equal.
if (simSetDomainValuesArray.size > 0 && !(simSetNode.getAsJsonArray("values") == simSetDomainValuesArray)) {
val newContext = jsonDocumentContext.put(keyPath,"values",simSetDomainValuesArray)
modifiedUiSchemaString = newContext.jsonString()
}
}
JsonDocumentContext不能正常工作。我能够获得指向该json的simsetNode,因此我知道keyPath在早期阅读中可以正常工作