У меня два файла json. Один - это файл, который нужно обновить, а другой - файл, из которого я читаю значение. Моя проблема в том, что значение, которое нужно переопределить, должно быть переопределено другим объектом. Когда я использую библиотеку путей JSON, я получаю пустую карту в пространстве значений.
Пример:
val sourceConfigStr =
"""
|{
| "path": {
| "dummyKey1" : "nothing",
| "dummyKey2" : "data.csv"
| },
| "format": "RANDOM",
| "schema": "schema.json"
|}
""".stripMargin;
val modifiedString = JsonPath.parse(sourceConfigStr).set("$.path.dummyKey1", Map("dummyKey13" -> "Hello")).jsonString()
val modifiedSource = JsonUtil.fromJson[Map[String,Any]](modifiedString);
println(modifiedSource)
Output : Map(path -> Map(dummyKey1 -> Map(), dummyKey2 -> data.csv), format -> RANDOM, schema -> schema.json)
Как видите, dummyKey1 был заменен пустой картой ( ). Как это исправить?
Обновление: эта проблема существует, потому что для функции .set () требуется значение String. Итак, я создал строку json и попытался передать ее. Однако теперь в моем выводе есть backsla sh и "". Как сделать из него униформу JSON?