【发布时间】:2018-01-04 12:03:19
【问题描述】:
我有一个解析器,可以解析多个网站并提取所需的数据,并为每个网站生成JSON 文件。每个JSON 文件具有不同的格式但具有相同的逻辑。
例如:
站点 1 JSON
{ url:"site1.url.com",
name: "site1Name",
owner:"ownerName",
category:"book,magazine",
content:{
book:[{ name:"book1",author:"author1"},
{name:"book2",author:"author2",...],
magazine:[...]
}
}
站点 2 JSON
{ url:"site2.url.com",
title: "site2Name",
manager:"ownerName2",
category:"software",
content:{
software:[{ name:"software1",author:"author1"},
{name:"software2",author:"author2",...]
}
}
站点 3 JSON
{ link:"site3.url.com",
label: "site3Name",
admin:"ownerName3",
category:"software",
content:{
software:[{ title:"Firefox",type:"browser"},
{title:"InteliJ",type:"IDE",...]
}
}
现在,我想在我的 Java Spring-MVC 应用程序中收集所有数据。然后将它们合并到我的模型中并将它们保存为数据库结构格式。请注意,我的模型和数据库结构与 JSON 解析的数据不同。
我试试这个解决方案:
首先为每个站点创建一个 JSON 对象(JSON 文件)并使用 Jackson 将 JSON 反序列化为我的对象。然后使用DozerMapper 将对象映射到我的模型并将它们持久化到数据库中。
有更好的解决方案吗?
注意:
- 站点的数量(
JSON文件)可以大于100与100不同的格式。如果我使用这个解决方案,我需要100每个站点的不同对象,然后是100XMLDozerMapper。重构和开发这个大工作区并不容易,这也不好!!!
【问题讨论】:
标签: java json spring jackson dozer