当前位置: 首页 > 知识库问答 >
问题:

如何使用Jackson解析器将动态Json值映射到Pojo对象

明星剑
2023-03-14
{
      "1forge.com": {
        "added": "2017-05-30T08:34:14.000Z",
        "preferred": "0.0.1",
        "versions": {
          "0.0.1": {
            "added": "2017-05-30T08:34:14.000Z",
            "info": {
              "contact": {
                "email": "contact@1forge.com",
                "name": "1Forge",
                "url": "http://1forge.com"
              },
              "description": "Stock and Forex Data and Realtime Quotes",
              "title": "1Forge Finance APIs",
              "version": "0.0.1",
              "x-apisguru-categories": [
                "financial"
              ],
              "x-logo": {
                "backgroundColor": "#24292e",
                "url": "https://api.apis.guru/v2/cache/logo/https_1forge.com_assets_images_f-blue.svg"
              },
              "x-origin": [
                {
                  "format": "swagger",
                  "url": "http://1forge.com/openapi.json",
                  "version": "2.0"
                }
              ],
              "x-providerName": "1forge.com"
            },
            "updated": "2017-06-27T16:49:57.000Z",
            "swaggerUrl": "https://api.apis.guru/v2/specs/1forge.com/0.0.1/swagger.json",
            "swaggerYamlUrl": "https://api.apis.guru/v2/specs/1forge.com/0.0.1/swagger.yaml",
            "openapiVer": "2.0"
          }
        }
      },
      "1password.com:events": {
        "added": "2021-07-19T10:17:09.188Z",
        "preferred": "1.0.0",
        "versions": {
          "1.0.0": {
            "added": "2021-07-19T10:17:09.188Z",
            "info": {
              "description": "1Password Events API Specification.",
              "title": "Events API",
              "version": "1.0.0",
              "x-apisguru-categories": [
                "security"
              ],
              "x-logo": {
                "url": "https://api.apis.guru/v2/cache/logo/https_upload.wikimedia.org_wikipedia_commons_thumb_e_e3_1password-logo.svg_1280px-1password-logo.svg.png"
              },
              "x-origin": [
                {
                  "format": "openapi",
                  "url": "https://i.1password.com/media/1password-events-reporting/1password-events-api.yaml",
                  "version": "3.0"
                }
              ],
              "x-providerName": "1password.com",
              "x-serviceName": "events"
            },
            "updated": "2021-07-22T10:32:52.774Z",
            "swaggerUrl": "https://api.apis.guru/v2/specs/1password.com/events/1.0.0/openapi.json",
            "swaggerYamlUrl": "https://api.apis.guru/v2/specs/1password.com/events/1.0.0/openapi.yaml",
            "openapiVer": "3.0.0"
          }
        }
      },
      "1password.local:connect": {
        "added": "2021-04-16T15:56:45.939Z",
        "preferred": "1.3.0",
        "versions": {
          "1.3.0": {
            "added": "2021-04-16T15:56:45.939Z",
            "info": {
              "contact": {
                "email": "support@1password.com",
                "name": "1Password Integrations",
                "url": "https://support.1password.com/"
              },
              "description": "REST API interface for 1Password Connect.",
              "title": "1Password Connect",
              "version": "1.3.0",
              "x-apisguru-categories": [
                "security"
              ],
              "x-logo": {
                "url": "https://api.apis.guru/v2/cache/logo/https_upload.wikimedia.org_wikipedia_commons_thumb_e_e3_1password-logo.svg_1280px-1password-logo.svg.png"
              },
              "x-origin": [
                {
                  "format": "openapi",
                  "url": "https://i.1password.com/media/1password-connect/1password-connect-api.yaml",
                  "version": "3.0"
                }
              ],
              "x-providerName": "1password.local",
              "x-serviceName": "connect"
            },
            "updated": "2021-07-26T08:51:53.432Z",
            "swaggerUrl": "https://api.apis.guru/v2/specs/1password.local/connect/1.3.0/openapi.json",
            "swaggerYamlUrl": "https://api.apis.guru/v2/specs/1password.local/connect/1.3.0/openapi.yaml",
            "openapiVer": "3.0.2"
          }
        }
      }
    }

您好,我不熟悉JSON学习,并尝试将上述JSON解析为POJO对象。”https://api.apis.guru/v2/list.json“。我无法理解如何存储不同的主机名”1 Forge。com”,“1密码。local:connect“作为java类中的一个字段。上面的任何帮助都会对我很有帮助

共有1个答案

董同
2023-03-14

你可以使用jackson和下面的TypeReference,这里Map对象的键将是你的消息中的主机名-

ObjectMapper mapper = new ObjectMapper();
Map<String, ArrayList<Type>> map = mapper.readValue(msg,new TypeReference<HashMap<String, ArrayList<Type>>>(){});

其中类型为pojo,如下面的消息所示-

public class Type {
public String added;
public String preferred;

//all other fields
}
 类似资料:
  • 我使用JAVA jackson将JSON映射到JAVA pojo对象,我的JSON文件是: 在之后,我收到了以下错误消息: 不能反序列化出START_ARRAY令牌 我的POJO课程: 请问,这种JSON格式的正确java POJO是什么?谢谢

  • 我和jackson一起绘制地图,我有点迷茫。我的Json具有以下结构 我确实找到了很多处理数组的教程,但我在第一个标记“d”时就已经失败了。而且根本不需要所有的“_元数据”标记。 我创建了一个包含lastName等属性和一个集合附件的pojo。但我的代码在标记“d”或“_元数据”时总是失败 还有杰克逊的读者 任何提示都将不胜感激。 问候马蒂亚斯

  • JSONMappingException:无法反序列化com.demo.json.model.abc实例 编辑:我的POJO如下所示: 有人能提出解决办法吗? 有人能帮我做这个吗?

  • 你好,我有下一个json响应: 正如你所见,我有一个资源对象,里面有许多不同的对象,但这些对象可能会根据输入的不同而有所不同。我创建了下一个pojo: 在我的输入Pojo中: 导入java。util。列表 我将资源添加为对象列表,但我可以看到它是一个对象,其中包含不同的对象。如何将这些不同的对象映射到Java中的对象?事实上,我需要计算我有多少资源,但我正在努力实现这一目标。谢谢!

  • 我有一个JSON字符串: ...我试图映射回POJO: 上面的字符串(我正在尝试映射)实际上包含在一个组织中。json。JSONObject,可以通过调用该对象的方法来获取。 我想使用Jackson JSON对象/JSON映射框架来进行此映射,到目前为止,这是我最好的尝试: 我需要地图绘制者: 完全忽略外部的花括号(“”和“”) 如果唯一的方法是调用的方法,那么就这样吧。但我想知道Jackson是

  • 假设我有这样的物体 我正在使用RestTemboard类从URL中获取json,如下所示: 之后,我想使用jackson对象映射器将json字符串转换为一个对象 将实体类作为第二个参数传递 问题是我应该如何编写ExampleJson实体来处理get-Showed json?我试过这样上课,但似乎不管用。 我得到了这样一个例外: