[英]How to map Dynamic Json Value to Pojo Object using Jackson Parser
{
"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 Object “https://api.apis.guru/v2/list. 我无法理解如何将不同的主机名“1forge.com”、“1password.local:connect”存储为 java class 中的字段。 上面的任何帮助都会对我有帮助
您可以将 jackson 与 TypeReference 一起使用,如下所示,此处 Map object 的密钥将是您消息中的主机名 -
ObjectMapper mapper = new ObjectMapper();
Map<String, Type> map = mapper.readValue(msg,new TypeReference<HashMap<String, Type>>(){});
根据您的消息,其中类型是 pojo,如下所示 -
public class Type {
public String added;
public String preferred;
//all other fields
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.