Scala Circe:如何将List编码为扁平化JSON字符串?
解决Circe生成扁平化JSON字符串的问题
你对asJson方法的作用理解有偏差:
asJson返回的是circe库中的Json类型对象,并非直接的JSON字符串。当你直接打印这个对象时,它默认会输出带换行和缩进的格式化JSON(等价于调用spaces2方法)。- 要生成扁平化的紧凑JSON字符串,你需要调用
Json对象的noSpaces(或compactPrint)方法来得到最终的字符串结果。
示例代码
import io.circe._ import io.circe.syntax._ // 定义目标列表 val nums = List(1, 2, 3) // 先转为Json对象,再生成扁平化字符串 val flatJson = nums.asJson.noSpaces // 输出结果:[1,2,3] println(flatJson)
额外说明
- 如果你直接执行
println(nums.asJson),会触发Json类的默认toString方法,它内部调用的是spaces2,所以会输出格式化后的JSON:[ 1, 2, 3 ] noSpaces和compactPrint是完全等价的方法,任选其一即可生成无空格、无换行的紧凑JSON字符串。
内容的提问来源于stack exchange,提问作者Jelly
相关产品推荐
相关产品推荐

