问题标签 [genson]

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 投票
1 回答
471 浏览

java - 如何配置 Genson 以反序列化日期?

我正在开发一个 Java servlet,我需要将一个类序列化和反序列化为 JSON 并返回。为此,我正在使用 Genson 库,但遇到了障碍。

Genson 无法反序列化 Date 类 (java.sql.Date) 的实例

我尝试设置自定义日期格式化程序,但它们似乎不会影响反序列化。

我还尝试使用构建器调用 withConverter() 插入新转换器,但我无法弄清楚这些参数是如何工作的。

这是我目前的建设者电话

我正在序列化的类有一个 Date 类型的字段

这是我尝试反序列化生成的 JSON 时出现的堆栈跟踪片段

这里的问题是像 getHours() 这样的方法已被弃用,因此调用它们会产生 IllegalArgumentException。我暂时不知道如何解决这个问题。

0 投票
1 回答
335 浏览

java - 如何将 @JsonConverter 与 Genson 一起使用?

我正在尝试使用 Genson 将具有 Long id 的对象序列化为 JSON。

如果我序列化为 JSON 并返回到 Java,它会很好地工作。但我在 JavaScript 中反序列化。

JavaScript 不支持完整的 64 位unsigned int作为数字(我发现我的 id 的最后几位在 JavaScript 中被归零),所以我需要在序列化过程中将 Long id 转换为字符串。

我不想转换对象中的所有 Longs,所以我尝试仅将 Converter 用于 id 字段。

我的转换器代码如下所示:

在调用序列化本身时,我没有做任何特别的事情:

这行不通。输出仍然如下所示:

我想要实现的是:

我也尝试将我的 Converter 传递给 GensonBuilder ,但这会命中对象中的所有 Longs,这不是我需要的。

有什么建议吗?

0 投票
2 回答
390 浏览

json - 如何使用 genson 解析嵌套的 json?

我从 REST API 获得结果,它是一个 json 对象列表,代表用户,每个用户内部都有嵌套的 json 对象。我的问题是嵌套属性名称与我在代码中获得的 bean 属性不对应。但它们太不合适了,我真的不想保留 API 嵌套属性名称......

我将genson 1.5 与java 8 一起使用,并将lombok 用于我的bean。我尝试使用简单的解串器,然后使用转换器,但没有成功。

这是我从 API 收到的示例:

这是我想要的新格式的bean:

我已经尝试过这些解决方案:

  • 仅使用推荐的反序列化(错误,因为与我的 bean 相比,没有从 api 获得相同的属性):
  • 使用转换器获取与我的 bean 相同的参数

错误是:

Genson 在http://genson.io/Documentation/UserGuide/#custom-serde给出了一个例子,但是他们读取了一个整数列表作为一个值,这就是为什么我为嵌套的 json 尝试了一个嵌套的 while ...

如果有人对如何处理我的问题有想法,非常感谢!

0 投票
1 回答
427 浏览

java - Genson 破坏了应用程序 (API)

好吧,正如标题所说,因为我试图添加 Genson,它破坏了我的应用程序。现在我不是 100% 确定它与 Payara 有关,但阅读错误日志肯定是。

我已将 Genson 添加到我的 Pom.xml 中,编写了一些代码来序列化和反序列化一个对象。启动我的应用程序(通过 Payara 部署)转到我的 API 并在网页上收到以下错误:

java.lang.AbstractMethodError: com.owlike.genson.ext.jsr353.GensonJsonGenerator.writeKey(Ljava/lang/String;)Ljavax/json/stream/JsonGenerator;

经过大量调试和谷歌搜索后,我决定一起删除 genson,也许会找到另一种解决方案。

但是现在我的应用程序不再工作了,它会部署并加载我的欢迎页面,但是一旦我转到我的一个 api 点,我就会收到。

在页面本身上java.lang.AbstractMethodError: com.owlike.genson.ext.jsr353.GensonJsonGenerator.writeKey(Ljava/lang/String;)Ljavax/json/stream/JsonGenerator;

如果有人知道这可能是什么,我将非常感激,因为这真的让我感到压力很大..,或者我至少可以如何恢复它。提前非常感谢。

编辑:也许是一些有用的信息,我在尝试添加 Websocket 支持后开始收到此信息。我创建了一个类
@ServerEndpoint(value = "/serverwsendpoint", encoders = SomethingEncoder.class, decoders = SomethingDecoder.class)

也许在 Payara 的某个地方,这个端点仍然存在,即使我不再对它们做任何事情,也会给我编码/解码错误。

0 投票
0 回答
74 浏览

java - Genson在JDK7中序列化失败

我有一个 JAX-RS 客户端,如下所示:

Evrything 适用于 JDK8。但是当我切换到JDK7时,它开始给出这个错误:javax.ws.rs.WebApplicationException: com.owlike.genson.JsonBindingException: Failed to serialize object of type class MyObj

我正在使用 Genson v1.4。任何帮助,将不胜感激。

0 投票
0 回答
38 浏览

java - Genson - 从序列化中排除 Collection 类型的空属性

我希望在序列化过程中忽略所有空属性,因此,我setSkipNull(true)在 GensonBuilder 中使用了。

但是,这似乎仅适用于非集合的属性。在序列化 Collection 类型的属性时,Genson 没有将其排除,而是将其包含为[](空数组)值。

如何排除为空的 Collection 类型的属性?

0 投票
0 回答
28 浏览

jersey - Genson 没有在 JerseyTest 中将我的自定义转换器用于内部结构

我有一个类似于下面的类层次结构,具有自定义Converter

FieldValueConverter#deserialize我的JerseyTest. 相反,它使用默认的 GensonJsonConverter 抱怨找不到合适的构造函数。( Caused by: com.owlike.genson.JsonBindingException: No constructor has been found for type class com.searchdata.actions.api.FieldValue)

我怎样才能使用它?

登记

s的转换器FieldValue(见下文),我在 Jersey 中注册,Application如下所示:

字段值转换器

物品

字段值

0 投票
1 回答
64 浏览

java - Genson 反序列化给定类型的列表

我正在写一个帮助功能。getList将从某处获取序列化数据,并将其反序列化。

getList 总是返回一个列表。用户将指定元素的类型。预期的用法是这样的:

我将如何修复以下实现?它无法编译,因为 className 是一个变量,而 List<> 需要一个类。

0 投票
0 回答
15 浏览

java - 多部分请求的 Genson 和 Jersey-core jar 冲突

我正在使用 @Consumes(MediaType.MULTIPART_FORM_DATA) 但在执行时会出现错误

与 MIME 媒体类型兼容的注册消息正文阅读器是:

我仔细观察,我在 pom.xml 中使用了两个 jars,顺序如下:

我观察到的是,当我将这个 jersey-core jar 放在我的类路径中时,它成功执行但我不希望这样,我需要捆绑所有的 jar。

提前致谢。

0 投票
1 回答
30 浏览

python - 用 json 中的枚举选项表示布尔值以使用 genson 生成 json 模式

我正在尝试使用 genson python 库来构建一个 json 模式,然后将在前端使用它来生成动态表单。在这种情况下,我希望前端根据模式值创建一个单选按钮。但我对布尔类型有疑问。例如,这就是我的 json 数据的样子

这就是我从中创建模式的方式。

生成的架构如下所示,

如上在必填字段中所见,我需要了解有关彼此之间相互关系的信息,但我只有一个必填字段。谁能帮我相应地修改json数据?