问题标签 [jsonschema2pojo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
699 浏览

java - 如何使用 json schema 或 jsonschema2pojo 将某些属性标记为已忽略?

如何使用 json schema 或 jsonschema2pojo 插件将某些属性标记为已忽略?有时我确实收到了这些属性,有时我没有。

这是我遇到的例外:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“警告”(com.xyz.music.napster.v2.metadata.MetaVO 类),未标记为可忽略(2 个已知属性:“returnedCount”、“totalCount” ]) 在 [来源:okhttp3.ResponseBody$BomAwareReader@49f94818; 行:1,列:15846](通过参考链:com.xyz.music.napster.v2.metadata.PlaylistsResponseVO["meta"]->com.xyz.music.napster.v2.metadata.MetaVO["warnings" ])

这是我的MetaVO课程架构

目前我发现如果我在MetaVO课堂上设置以下注释

我的问题解决了。

然而,这些类是由插件自动生成的(根据我们的项目规范,它们必须保持不变)。

是否可以从 json schema 或 jsonschema2pojo 插件执行类似的操作?

0 投票
1 回答
188 浏览

jsonschema2pojo - 使用 JSON2POJO maven 最新版本时保留大小写

我有一些 JSON 如下

当我使用 json2pojo maven 插件(0.4.37)时,POJO 是使用正确的 Java 命名约定(如fName,lName)创建的。有没有办法覆盖它并创建具有相同名称的 POJO(如FName, LName)。

0 投票
3 回答
5436 浏览

java - 动态加载的 pojo 类的 Jackson 反序列化/TypeReference

我需要获取JSON输入 Pojo 实例,并且我正在使用Jackson 2库,下面readValue的方法可以使用 typeReference 反序列化:

但问题是,由于POJO在运行时动态创建和加载,我如何获得JSON实例POJO/对象,因为我没有上述语句的完全限定类 (POJO_ClassName) 名称?

注意:我使用jsonSchema2pojo库在运行时生成POJO类。

这是代码片段,我POJO用于JSON 在运行时生成并尝试

但是由于com.EnrichmentService.Thread72.EsRootDoc尚未生成,编译器会出错到找不到类。

要点:

1) 在运行时迭代生成相同的 Pojo 类,但随着 JSON 输入的每次变化具有不同的属性。

2)甚至尝试过 Object pojo =mapper.readValue(json,Class.forName("com.EnrichmentService.Thread72.EsRootDoc")); 因为 class.forName 不会替换现有的类!

编辑 24 Aug17 - 这是我的自定义类加载器:

注意:Indexer 是在运行时加载动态 EsRootDoc/POJO 类的类。

我曾尝试使用上面的 TestClassLoader 自定义类加载器作为替代方式,如下所示:

参考了一个旧答案@如何在 java 中替换正在运行的应用程序中的类?

Edit2:24Aug17 面临堆栈跟踪的异常在这里:https ://pastebin.com/ckCu2uWx

0 投票
0 回答
3417 浏览

java - 如何在没有工具的情况下调试类加载器问题

对于基本我知道类加载器有一个层次结构和序列默认类加载器运行如下: -

a) 引导类加载器:首先运行并加载所有 java 类等。

b) Extclassloader : Extclassloader 加载所有 ext 文件夹 jar 和 java 库。

c) 应用程序类加载器:当程序执行并找到链接的类时,它们是使用这个类加载器从类路径加载的。

在此处输入图像描述

现在,我在运行时为各种 json 输入生成了 pojo 类,并且即使使用自定义类加载器,首先加载的 Pojo 类似乎也没有被替换(作为普通类加载器,首先检查类是否已经加载,如果加载不加载类低于图像正常的默认类加载器行为)。

所以现在我被困在如何知道我的课程是否被替换?我可以将一些听众链接到 jvm 中的类,让我知道类被替换了吗?我正在寻找可以调试重新加载或替换类过程的调试步骤。

注意:似乎使用自定义类加载器已将相同的类加载到 jvm 中的新自定义类加载器实例中。

请查看我仍在寻找答案的方法问题(可能是)jsonSchema2pojo jackson 反序列化问题。由于要求将 json 反序列化为动态创建的 Pojo ,当我需要在运行时创建 pojo 类后反序列化 json 时,您会建议一种方法吗?

0 投票
3 回答
1379 浏览

java - 没有 pojo 的改造和 GSON

我在应用程序中使用黑客新闻 api。我想使用 gson 工厂转换器进行改造调用,但我无法将响应转换为 pojo,因为它只是整数列表。

以下是api调用和响应

https://hacker-news.firebaseio.com/v0/topstories.json

0 投票
2 回答
7553 浏览

java - 未考虑执行中的 jsonschema2pojo maven 插件配置

我正在尝试使用 jsonschema2pojo 插件来生成基于模式和 json sourceTypes 的 POJO。每次执行都会指定配置。但是每次插件报告“必须提供 sourceDirectory 或 sourcePaths 之一”时。当在插件级别(全局)提供配置时,我可以运行它。但是我只能指定一个 sourceType。

有没有办法让插件在每个目标的执行级别使用配置?

插件版本:0.5.1

0 投票
1 回答
5148 浏览

json - 如何使用 if 条件检查附加值(使用空手道框架)?

我想使用 json 模式检查来自 GET/birds 请求的响应。在我的功能中:

我需要将架构放在 json 文件中,而不是放在功能中。我必须根据性别检查其他值。例如:如果性别是男性,则检查颜色是蓝色,尾巴是长还是短。如果性别是女性,则检查“唱歌”是真是假以及鸡蛋的数量。

所以我输入了birds.json:

但它不起作用。错误:com.intuit.karate.exception.KarateException:路径:$[0].type,实际:'female',预期:'object',原因:不相等。如何在我的 json 文件中进行此条件检查?

0 投票
2 回答
492 浏览

java - 使用 POJO 方法的 Java 类中的 JSON

所以我想在我的编码中使用 POJO 方法来处理一个 JSON 文件,所以我将有一个带有 getter 和 setter 的类,并在其中声明属性。我理解了原理,但我仍然缺乏理解如何将我在网上找到的以下测试 JSON 文件处理为 java 类的想法。

JSON:

所以我理解原理的方式我现在必须创建一个名为 Glossary 的类,并为属性设置 setter 和 getter,如下所示:

我还在网上找到了这个网站: http: //www.jsonschema2pojo.org/但只是复制并粘贴我拥有的 JSON 可能不起作用,因为我没有完全理解这种方法,所以我没有声明一切正确

0 投票
1 回答
302 浏览

json - 创建通用 Java 类而不修改 JSON 数据

我有一个非常独特的用例,其中我有一些无法修改的来自第三方的 JSON 数据。

接下来,有多个组件使用这些数据。与其提供整个 JSON,我想提供这些组件更易于使用的 Java 对象。因此,我使用jsonschema2pojo 工具从这个 JSON 创建 JAVA 对象。

现在,问题是当我使用这个库时,它为移动设备、桌面设备和平板电脑创建了三个不同的 Java 文件(这样做是正确的)但是使用这些信息的组件需要一个通用类而不是针对移动设备进行不同的处理台式机和平板电脑。此外,由于可以添加更多设备并且只有很多组件,我不想保留特定的类。我希望 3P 提供一个通用的“设备”,它具有可以存储移动/桌面或平板电脑信息的现场设备类型,但这需要很多时间。同时,您能想到任何解决方案吗?

0 投票
1 回答
521 浏览

java - 避免通过 jsonschema2pojo 生成 setter 方法

我想通过 json 生成一个没有给定属性的 setter 方法的类。jsonschema2pojo json 模式定义中是否有任何选项可以帮助我实现这一目标?