如何使用jackson在java中解包和序列化java地图?

2023-12-24

我有一颗这样的豆子

class Foo {
    private Map<String, Data> dataMap;
    private String fooFieldOne;
    private String fooFieldTwo;
}

class Data {
    private fieldOne;
    private fieldTwo;
}

我想像这样序列化为 Json

{
    "key1": {
        "fieldOne": "some value",
        "fieldTwo": "some value"
    },
    "key2": {
        "fieldOne": "some other value",
        "fieldTwo": "some other value"
    },
    "fooFieldOne":"valueone", 
    "fooFieldTwo":"valuetwo" 
}

但我得到的结果是这样的

{
    "dataMap": {
        "key1": {
            "fieldOne": "some value",
            "fieldTwo": "some value"
        },
        "key2": {
            "fieldOne": "some other value",
            "fieldTwo": "some other value"
        }
    },
    "fooFieldOne":"valueone", 
    "fooFieldTwo":"valuetwo" 
}

如何忽略上面json中的dataMap层?我为此使用 java jackson 库。

我尝试过的代码是

ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(myFOOObject)

你可以为dataMap并序列化dataMap而不是整个Foo实例。

mapper.writeValueAsString(myFOOObject.getDataMap());

另一种方法是使用@JsonUnwrapped注解。此注释在 Jackson 1.9+ 中可用。

http://jackson.codehaus.org/1.9.9/javadoc/org/codehaus/jackson/annotate/JsonUnwrapped.html http://jackson.codehaus.org/1.9.9/javadoc/org/codehaus/jackson/annotate/JsonUnwrapped.html

使用此注释的缺点是无法使用地图,如回答你的另一个问题 https://stackoverflow.com/questions/18043587/why-im-not-able-to-unwrapp-and-serialize-java-map-using-jackson-java-library

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用jackson在java中解包和序列化java地图? 的相关文章

随机推荐

  • Cocos2d iPhone非矩形精灵触摸检测

    有一个在精灵中包含三角形图形的项目 我将这些精灵排列在网格中 以便它们的矩形全部重叠 当精灵被触摸时 它们的 z 顺序 由我 被更改 以将它们放在 zOrder 的顶部 我使用的是 Cocos 0 8 1 和触摸调度程序方法 我可以进行触摸
  • 在 Android Studio 或 IntelliJ 中将未使用的导入报告为错误

    Android Studio 中是否有任何方法 设置可以将 java 文件中未使用的导入报告为错误 在 Eclipse 中 lint 很容易将此报告为错误 适用于 Android Studio 和 IntelliJ 你可以去File Set
  • iOS 崩溃分析和报告 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 了解 javascript 全局命名空间和闭包

    我正在尝试提高对 javascript 中的全局命名空间的理解 我对以下几件事感到好奇 是否存在一个 GOD 即父 对象 所有对象 因为除了基元之外的所有事物都是对象 都要回答 如果是这样 该对象将是 窗口 吗 为什么在全局范围内使用变量
  • 选择取消按钮时如何重置 DatePicker

    我的应用程序中有一个 datePicker 对话框 当我选择日期时效果很好 但是 如果在对话框中更改日期然后按取消 原始编辑文本将保持不变 但日期选择器仍然具有取消之前的日期 我想确保每次进入日期选择器时 它都会设置 EditText 中的
  • 当键重复时如何使用 Java Stream API 添加 Map 的内部元素

    我有一个清单List
  • 如何从非活动类中检索上下文?

    我已经发现一个答案 https stackoverflow com questions 4177731 android how to call method from another class without passing contex
  • Symfony 2 调试工具栏未显示

    Symfony 调试工具栏不显示 我正在 app dev php 环境中运行该网站 config dev yml 文件包含以下行 web profiler toolbar true intercept redirects false app
  • 使用 jQuery 动态添加/删除输入字段

    我想使用 jquery 构建动态添加 删除表单 它应该看起来像 姓名类型需要吗 示例输入 姓名类型需要吗 托尼管理员选中 复选框 删除 我得到的是添加 删除输入框的示例 它如何转换为我的想法 我必须使用多列表吗 谢谢你的好心帮助 h1 jQ
  • 如何避免用户删除他的会话

    用例 目前 我正在尝试构建一个页面 用户可以在其中对内容进行投票 赞成 反对票 类似于StackExchange网络上的功能 但用户不需要自己注册即可对内容进行投票 所以这将是一种 匿名 投票页面 它是用 Laravel5 构建的 并使用
  • CModel 与 CFormModel 与 CActiveRecord

    我正在 yii 中构建一个数据库密集型应用程序 所以性能和安全性自然是一个值得关注的问题 除此之外 表单验证也是一个主要标准 为了安全起见 我计划对所有 Sql 查询使用参数绑定 对于验证 我想使用 Yii 提供的验证器 而不是推出我自己的
  • 如何为WCF服务库创建wsdl文件?

    我有一个 WCF 服务库项目 我正在尝试通过在 Visual Studio 中运行 WCF 测试客户端 按下 F5 来启动 WCF 测试客户端来生成 wsdl 文件 它启动了 WCF 测试客户端 但显示 无法添加服务 服务元数据可能无法访问
  • OpenCV:DetectMultiScale() 给出了太多的物体点

    我用以下方法训练了我的电脑opencv traincascade一整天使用 6000 多张类似于以下的正面图像来检测 2 欧元硬币 现在 我刚刚尝试运行一个简单的 OpenCV 程序来查看结果并检查文件cascade xml 最后的结果非常
  • 为什么我的

    这个问题在这里已经有答案了 我有一个正在尝试使用 Flexbox 创建的导航 我希望有一个最大高度 并且有 li 当没有足够的空间时推入新列 我已经显示了 ul 内联柔性 这 li 正在跳到一个新专栏 但是 ul 不随 li 造成溢出效果
  • 如何在禁用 StyleCop 代码分析的情况下创建 Visual Studio 构建配置?

    Question 我已经安装了StyleCop http stylecop codeplex com 现在源代码中到处都是 StyleCop 的波浪线 现在 我希望能够暂时启用和禁用 StyleCop 的分析 我本来期望有一个复选框显示 禁
  • 如何成功传递字符串数组作为参数alamofire

    我有一个接受字符串数组作为参数的端点 但我无法让它与 alamofire 一起使用 我用邮递员测试我的端点 它工作正常 即使在浏览器中也是如此 但是使用 alamofire 它会失败并且只返回整个内容 就好像我没有输入任何参数一样 func
  • Parallels Extensions“Extras”仍然有价值吗?

    The 任务 Parallels Extras 扩展 http blogs msdn com b pfxteam archive 2010 04 04 9990342 aspx于 2010 年发布 此后没有发布任何更新 我将此代码发布为 D
  • Rails中如何管理非自增主键?

    在使用 Rails 时 我有很多情况希望有一个非自动增量主键 示例 我在 A 和 B 之间有一对一的关系 B 描述了添加到 A 的一些特定功能 因此没有 A 就无法存在 所以我们有 A有一个BB 属于 A 自然的想法是将 B A id 作为
  • 在Linux中用Java代码执行FFmpeg命令的问题

    我执行此操作时遇到问题ffmpeg我的java代码中的命令 ffmpeg i sample mp4 i ad mp4 filter complex 0 v trim 0 15 setpts PTS STARTPTS v0 1 v trim
  • 如何使用jackson在java中解包和序列化java地图?

    我有一颗这样的豆子 class Foo private Map