【问题标题】:Jackson mapping same JSON nodes with different names as keyJackson 将具有不同名称的相同 JSON 节点映射为键
【发布时间】:2015-04-15 08:02:45
【问题描述】:

我正在使用 android 中的 RESTful 网络服务,我是第一次将 Spring for Android 与 Jackson 一起使用。

我正在使用this 生成器来生成 java 类,但有时当 JSON 中相同对象的数组具有不同的名称时,我会遇到麻烦:

"a2e4ea4a-0a29-4385-b510-2ca6df65db1c": {
                        "url": "//url1.jpg",
                        "ext": "jpg",
                        "name": "adobe xm0 ",
                        "children": {},
                        "tree_key": []
                    },
                    "d3ff3921-e084-4812-bc49-6a7431b6ce52": {
                        "url": "https://www.youtube.com/watch?v=myvideo",
                        "ext": "video",
                        "name": "youtube example",
                        "children": {},
                        "tree_key": []
                    },
                    "151b5d60-8f41-4f38-8b67-fe875c3f0381": {
                        "url": "https://vimeo.com/channels/staffpicks/something",
                        "ext": "video",
                        "name": "vimeo example",
                        "children": {},
                        "tree_key": []
                    }

所有3个节点都是同一种类型,可以映射到同一个对象,但是生成器为每个节点创建3个类,名称不同。

感谢您的帮助。

【问题讨论】:

  • 这不是一个 JSON 数组,它是一个 JSON 对象。您必须将数组作为对象打印出来,因此 Jackson 将对象哈希码作为键,将值作为对象本身。

标签: java android json spring rest


【解决方案1】:

对于 Jackson,您可以使用 Map map = new ObjectMapper().readValue(<insert object here>, Map.class);

Programmer Bruce 所述:here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 2015-06-25
    • 2016-06-05
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多