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

如何使用MapNeat重命名JSON列表内部对象的指定字段

MapNeat JSON结构转换解决方案

错误原因

你原来的写法不生效是因为MapNeat不支持直接通过"detil[*].nama" *= "detail[*].name"这种跨数组的通配符属性映射逻辑,无法自动创建对应的数组层级结构。

正确实现代码

有两种常用的实现方式:

方式1:显式遍历数组处理

fun test(jsonRequest: String, setup: String): MapNeat {
    val transform = json(MapNeatSource.fromJson(jsonRequest)) {
        // 遍历原detail数组,逐个转换内部字段
        "detil" *= from("detail").map { itemSource ->
            json(itemSource) {
                "nama" *= "name"
            }
        }
    }
    return transform
}

方式2:先复制数组再批量重命名键

如果使用较新版本的MapNeat,可以先复制数组再批量修改内部键名,写法更简洁:

fun test(jsonRequest: String, setup: String): MapNeat {
    val transform = json(MapNeatSource.fromJson(jsonRequest)) {
        // 先把原detail数组完整复制到目标detil字段
        "detil" *= "detail"
        // 批量把detil数组下所有元素的name键重命名为nama
        "detil[*].name" *= fromSelf().renameKey("nama")
    }
    return transform
}

两种写法都可以实现你需要的数组字段重命名转换效果,输出的JSON结构和你给出的目标结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:54:03