用于JSON转换的POJO文件应如何在项目中组织?

问题描述 投票:0回答:1

我正在使用Jackson来处理Java应用程序中的JSON数据。我正在处理的应用程序碰巧有许多必须处理的JSON消息和JSON数据。

由于JSON有效负载中的每个嵌套对象都将是一个单独的POJO类,所以当我大部分时间实际上只使用“根” POJO类时,我最终拥有许多POJO文件。

例如,使用这样的JSON有效负载:

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

我可能会得到以下文件:

  • Glossary.java
  • GlossDiv.java
  • GlossList.java
  • GlossEntry.java
  • GlossDef.java
  • 我将所有这些文件都放置在名为models的文件夹中,尽管它们确实与真实模型没有任何关系。

很快,models文件夹充满了所有这些POJO文件。仅上面的示例有效负载就有5个POJO文件。我还有许多其他不同的有效负载,其中许多有效负载几乎需要6-8个POJO文件来形成其结构。您可以想象文件夹中充满了这些文件。

我尝试将它们放入单独的文件夹中,例如:

  • 型号
    • 词汇表
      • Glossary.java
      • GlossDiv.java
      • GlossList.java
      • GlossEntry.java
      • GlossDef.java

即使使用这种结构,我也注意到在同一代码库上工作的其他工程师可能不知道哪个文件是有效负载的“根”文件或主文件。在这种情况下,Glossary文件是主文件。但是没有简单的方法可以表明这一点。他们必须一个一个地打开它们,然后找出哪个是主文件。另外,在大多数情况下,除了“根”文件外,其他文件很少直接使用。

在Node应用程序中,我可以像这样组织它:

  • 型号
    • 词汇表
      • index.js
      • 内部
        • GlossDiv.js
        • GlossList.js
        • GlossEntry.js
        • GloseDef.js

至少,所有“丑陋的”辅助文件都放在另一个文件夹中,很明显,我可以只使用index.js。但是我不认为我可以用Java做类似的事情。

我想这是许多项目中的常见问题,因为JSON被广泛使用,并且可能有更好的方式来组织我不知道的文件。

这些POJO文件通常在Spring应用程序中如何用于转换JSON数据?

我正在使用Jackson来处理Java应用程序中的JSON数据。我正在处理的应用程序碰巧有许多必须处理的JSON消息和JSON数据。由于每个嵌套对象...

java json spring-boot code-organization
1个回答
0
投票

您可以采取两种方法:

© www.soinside.com 2019 - 2024. All rights reserved.