scala - 编写未包装的 json 数组 - Jackson
问题描述
我们如何在 Jackson 中编写未包装的 JsonNode 数组?下面是一个示例代码:
val message = """{"Type": "Type1","MessageId": "MessageId1"}"""
val msgNode = objectMapper.readTree(message)
val msgNodes = List(msgNode, msgNode).asJavaCollection
val arrayNode = objectMapper.createArrayNode()
arrayNode.addAll(msgNodes)
objectMapper.writeValueAsString(arrayNode)
上面的代码将打印由方括号包裹的字符串数组,例如:
[{"Type":"Type1","MessageId":"MessageId1"},{"Type":"Type1","MessageId":"MessageId1"}]
我正在寻找的是上面的展开版本,基本上是这样的:
{"Type":"Type1","MessageId":"MessageId1"},{"Type":"Type1","MessageId":"MessageId1"}
有人可以帮忙吗?如果消息是 POJO 类,并且我们希望对 POJO 数组进行解包输出,我们如何扩展它?
解决方案
您可以输出数组的每个项目并用逗号连接:
msgNodes
.map(msg => objectMapper.writeValueAsString(msg))
.mkString(",")
要为任何类中的任何数组自动执行此操作,您可能必须查看其他库,这些库提供了在特定范围内以自定义方式描述数组序列化程序的可能性(例如Writes
在 Play-Json 中)。
推荐阅读
- jasmine - 如何设置新状态来测试可观察对象?
- javascript - div 调用两个不同的函数
- assembly - 分段错误ShellCode
- reactjs - 如何从 Navigation Drawer 的 navigateOptions 访问数据
- swift - Xcode 12 更新后快速运行 MLModel 的新错误
- javascript - 如何通过拖放添加多个文件,也可以通过单击上传进度条
- html - 使网站移动响应无法正确适应元素
- python - ValueError: 层 max_pooling2d_4 的输入 0 与层不兼容:预期 ndim=4,发现 ndim=5
- c# - 如何在不弹出浏览器的情况下使用 OAuth2 发送 GMail/GSuite 电子邮件?
- javascript - C# 异步任务与 Js 异步任务(节点 js)