JsonPath,设置和放置不起作用

时间:2018-08-23 17:17:36

标签: jsonpath

我能够掌握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在早期阅读中可以正常工作

0 个答案:

没有答案