问题标签 [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 回答
1977 浏览

java - 无法使用 Jersey 解析 RESTful 应用程序中的日期

我做 RESTful 应用程序来接受并保存日期。当我使用以下 JSON {"date": "1997-07-16T19: 20: 30 + 01: 00", "count": 1} 调用它时,我收到下面列出的错误。没有日期它运作良好。我使用 jersey.version 2.5.1 和 eclipselink.version 2.5.2-M1。我该如何解决?

资源

日期映射器

错误

0 投票
1 回答
380 浏览

java - Genson 中的类元数据的顺序很重要 - 有解决方法吗?

我正在使用 Genson 将我的 android 应用程序中的 json 序列化 + 反序列化为多态对象。虽然 JSON 来自多种来源,但我不能保证 @class 元数据将是 json 中的第一个行项目。遍历 Genson 代码并编写测试用例,看起来 @class 元数据必须是字典中的第一个条目。

有没有人幸运地解决了这个限制?是时候切换到其他东西了,如果是,是什么?

0 投票
1 回答
3281 浏览

java - JSON 反对 Jersey 和 Genson 的问题

尝试使用 Jersey 和 Genson 执行 POST 调用时遇到以下问题:

.... com.owlike.genson.JsonBindingException: No constructor has found for type interface Animal ....

我有以下设置:

-> 动物.java

-> 狗.java

-> 动物园.java

-> GensonCustomResolver.java

-> JerseyService.java

输入 JSON 如下所示:

总而言之,我有一个列表,并且在反序列化对象时尝试使用其中一种接口实现。

先感谢您。

::::解决方案:::::

万一有人遇到这种情况:

我完全删除了genson依赖项,如下所示。只使用杰克逊注释,它似乎工作。我还从 Dog.java 的 name 属性中删除了 @JsonProperty。

谢谢 :) :)

0 投票
2 回答
388 浏览

android - Genson 与 Android - Proguard 配置

我在 Android 项目中的 proguard 配置有问题。我正在使用 Genson 解析传入的 JSON 数据。它速度很快,不需要额外的配置或反序列化器,因为在服务器端也有 Genson。

在调试模式下一切正常,但在发布时,使用 proguard 则不行。

不幸的是,我在运行时遇到了一些错误:

即使数据模型在保持类中也会发生。我尝试了所有配置与保持类、类成员等。我还能做什么?

编辑

我还知道什么:

  • 我尝试在我的项目中保留所有课程。
  • 我跟 genson 上课(-keep class com.owlike.genson.** { *; })
  • 我的班级的 Instanceof 表明它是 com.owlike.genson.Converter 的实例
0 投票
2 回答
8980 浏览

java - 带有 Jersey JsonBindingException 的 Genson:无法反序列化以键入类 java.lang.String

在我的 Spring MVC Java 应用程序中,我使用的是 Jersey REST API。我正在使用杰克逊进行 JSON 处理。我将Genson添加到我的项目中,用于过滤某些类的某些字段。我试图只为此使用Genson,剩下的我想使用Jackson。

但是我在使用 Jersey REST api 时遇到异常,因为当 Jar 位于类路径中时,默认情况下启用了 Jersey 的 Genson(从这个链接知道)。

这是我连接到 Web 服务并使用 Jackson 获取数据并转换为 String 的代码

我收到以下异常

第 74 行指的是 stringResponse = response.getEntity(String.class);.

如何禁用 Genson for Jersey 或如何使用 Genson 解决此问题?

谢谢

0 投票
1 回答
1439 浏览

java - 字节和日期字段的 Genson 序列化问题

嗨,我在我的 POJO 类中使用 Genson 进行 ser/de。但是在序列化具有字节字段的 POJO 时会出现问题。我还没有尝试过反序列化同一个对象。所以我不知道这是否也有效。日期字段也有问题。

这是我的 POJO

我得到了带有值的对象,当我打印时,我得到了如下结果。

我尝试使用 Genson 序列化以下代码(有时我需要通过删除一些字段来进行序列化,所以我使用以下代码)。

但我得到以下 JSON 字符串,字节字段值不同。日期字段值没有时间戳。

我在 Github 中看到这个问题已经解决了字节问题。但是如何在我的项目中获取更新的代码?我正在使用 Maven,并且正在使用最新版本的 Genson-1.2。

我应该尝试builder.useByteAsInt(true);我的代码吗?

也适用于日期字段。我看到两个选项

我不想设置这些东西。因为有时该字段可能带有时间戳,有时它没有时间戳,并且不同对象的日期格式可能不同。我正在寻找一种可以序列化日期字段并按原样转换为字符串的解决方案。

获取正确 JSON 字符串的最佳方法是什么?我正在寻找一种可以序列化反序列化任何 POJO 类的解决方案。

更新 1

我已经创建了 ByteConverter 和 Date Converter。

这些是我的转换器 ByteConverter.java

日期转换器.java

在我的方法中,我尝试了以下代码

我得到以下 JSON 字符串

字节问题解决了。但是日期问题仍然存在。我尝试了 DateConverter 类的 deerialize 方法。但它也没有奏效。

更新 2

我更新的 DateConverter.java。DateUtils 来自 Apache commons。我没有测试过反序列化。但是序列化正在工作。我也想要带有时区的格式。所以我以我定制的方式做了。

0 投票
1 回答
1252 浏览

java - JAX-RS: Jersey + Genson = MessageBodyProviderNotFoundException

I am developing RESTful web service using JAX-RS (Jersey) and Glassfish as server. I implemented simple method that returns list of entites and when I attempting to access it server drops 500 error with

org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json.

I tried to add Genson lib to my project but this doesn't help. What's wrong with my code?

My entity

Service

Web.xml

Pom.xml

0 投票
1 回答
459 浏览

json - Jersey/Genson:解组单个对象数组

Jersey 类似:具有 1 个元素的 Json 数组在客户端被序列化为对象 BUT。例如,我收到一个 JSON 对象,其中一个字段是一个数组,但如果只有一个元素,它就是一个对象。

相对

我正在使用 Jersey/Genson 解析/解组 JSON。当然,如果 JSON 与目标类不匹配,我会收到错误消息(例如expected [ but read '{'

我已经阅读了很多关于这个错误以及在服务器端创建 JSON 对象时如何避免的信息,但我没有发现在客户端处理时如何处理这个问题。

与往常一样,如果有多种解决方案,我更喜欢最无代码的可能性......

顺便说一句:Moxy 可以工作,但它不会编组本机 Object-type 对象,这是另一个要求......

0 投票
1 回答
2130 浏览

json - 在 RESTful Web 服务请求中将日期值解析为 JSON

如何将日期值发送到 Web 服务请求中的日历对象。

请求网址: http://localhost:7001/WebProject/Service/getDetails

请求参数:

它没有将值解析为日期。我如何传递日历对象的值。

我正在使用 genson jar 序列化请求。错误信息就像

0 投票
1 回答
814 浏览

key - 具有复杂键的地图的 Genson 序列化

Genson 主页上列出的功能之一是“具有复杂键的地图的序列化和反序列化”。

虽然我试图将带有 Keys 的映射作为复杂的 java 对象序列化为 json 字符串,然后将它们反序列化回 java Map。反序列化的映射键始终是字符串。有人可以帮我了解如何使用 genson 进行如此复杂的键映射序列化和反序列化吗?

这是我的代码