You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala中使用json4s编辑修改JSON对象并生成新JSON的方法咨询

实现方案

你通过extract得到的Map是嵌套不可变结构,仅转换最外层为可变Map无法修改内层属性,需要逐层将嵌套的Map转为可变结构后再执行修改操作,具体实现如下:

首先需要在代码作用域内补充json4s序列化所需的隐式格式声明:

implicit val formats: Formats = DefaultFormats

修改逻辑代码:

// 逐层提取嵌套结构并转为可变Map
val inputMap = reqJsonMutableMap("input").asInstanceOf[Map[String, Any]].to(mutable.Map)
val houseMap = inputMap("House").asInstanceOf[Map[String, Any]].to(mutable.Map)

// 1. 修改Tile字段取值为Marble
houseMap("Tile") = "Marble"

// 2. 替换键名Kitchen为Bathroom
val kitchenContent = houseMap.remove("Kitchen").get
houseMap("Bathroom") = kitchenContent

// 将修改后的内层结构写回上层Map
inputMap("House") = houseMap
reqJsonMutableMap("input") = inputMap

// 生成最终JSON字符串
val targetJson = Serialization.write(reqJsonMutableMap)

如果需要兼容JSON结构缺失的边界场景,可以新增getOrElse判断或者模式匹配逻辑,避免空指针、类型转换异常问题。

内容的提问来源于stack exchange,提问作者Woody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:48:03