如何使用Circe将List转换为指定结构的JSON
解决方案
问号处需要传入Circe的JSON数组类型值,你可以用Json.arr搭配Json.fromFields构造目标数组内容,完整代码如下:
import io.circe.Json val result = Json.fromFields(List( "items" -> Json.arr( // 第一个item对象 Json.fromFields(List( "field1" -> Json.fromString("somevalue"), "field2" -> Json.fromString("somevalue2") )), // 第二个item对象 Json.fromFields(List( "field1" -> Json.fromString("abc"), "field2" -> Json.fromString("123abc") )) ) ))
如果你引入了circe-literal模块,还可以用更简洁的JSON字面量语法直接构造,不需要手动拼接结构:
import io.circe.literal._ val result = json"""{ "items": [{ "field1": "somevalue", "field2": "somevalue2" }, { "field1": "abc", "field2": "123abc" }] }"""
原理说明
Json.arr方法用于构造JSON数组,接收任意多个Json类型的元素作为参数- 数组内的每个JSON对象用
Json.fromFields构造,接收键值对列表,值需要统一为Json类型,字符串值用Json.fromString包裹即可
内容的提问来源于stack exchange,提问作者Code Geek
相关产品推荐
相关产品推荐

