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

在Kotlin中如何用mapOf()生成带换行的多篮子结构JSON文件?

实现方案

1. 构建多篮子的数据结构

先为每个篮子定义对应的行数据,再将单个篮子包装成独立的Map,最后存入列表统一管理:

// 定义各篮子的行数据
val basketARows = mapOf(
    "Row 1" to "Apple",
    "Row 2" to "Orange",
    "Row 3" to "Pear",
    "Row 4" to "Grapes"
)
val basketBRows = mapOf(
    "Row 1" to "Mango",
    "Row 2" to "Pineapple",
    "Row 3" to "Kiwi",
    "Row 4" to "Cherry"
)
val basketCRows = mapOf(
    "Row 1" to "Banana",
    "Row 2" to "Papaya",
    "Row 3" to "Watermelon",
    "Row 4" to "Strawberry"
)
val basketDRows = mapOf(
    "Row 1" to "Avocado",
    "Row 2" to "Peach",
    "Row 3" to "Lemon",
    "Row 4" to "Guava"
)

// 将每个篮子封装为独立Map,存入列表
val allBaskets = listOf(
    mapOf("Basket A" to basketARows),
    mapOf("Basket B" to basketBRows),
    mapOf("Basket C" to basketCRows),
    mapOf("Basket D" to basketDRows)
)

2. 生成带换行的JSON内容

你需要的是JSON Lines格式(每行一个独立JSON对象),而非标准JSON数组。可以遍历列表逐个生成JSON字符串,再用换行符拼接:

// 可选:创建支持格式化缩进的Gson实例,若要紧凑输出则用默认Gson()
val gson = GsonBuilder().setPrettyPrinting().create()

// 遍历生成每个篮子的JSON,用换行符分隔
val jsonLines = allBaskets.joinToString(separator = "\n") { basket ->
    gson.toJson(basket)
}

// 输出或写入文件
println(jsonLines)
// 写入文件可调用:File("your-path.json").writeText(jsonLines)

注意事项

  • 原代码存在语法错误:mapOf的键值对应统一使用to,不能混用:,比如"Row 2":"Orange"要改为"Row 2" to "Orange"。
  • 若不需要单个篮子内部的格式化缩进,直接用Gson()替代GsonBuilder().setPrettyPrinting().create()即可生成紧凑的单行JSON对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:56:06