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

java - 来自 json 的 JAX-RS joda 日期时间

我正在使用 java 和以下库构建 API

  • javax.ws.rs-api-2.0.1
  • genson-1.4
  • 乔达时间 2.9.6

我现在正在尝试创建一个post以对象列表作为参数的请求

此类Station包含另一个具有DateTime变量的类的列表。

数据是使用 javascript 从 Web 应用程序发送的。当我不发送带有日期时间对象的嵌套列表时,它工作正常。当我尝试发送它时,我收到错误:

java.lang.InstantiationException

发送的json看起来像这样

和这个链接的java类datevalue

发送时代码如何不起作用DateTime

注意:API 中的其他一切工作正常:发布用户对象、获取包含日期时间的数据、发回日期时间

编辑

我发现 joda-time 有一个扩展。我添加了以下代码

但它仍然给我同样的结果

0 投票
2 回答
137 浏览

java - 处理部分json文件

我有一个json看起来像这样的文件

我想根据需要racesnpc单独检索数据。我genson用来解析JSON. 我这样解析

例如解析的方法races看起来像这样

在调试它populates变量result就好了,但endObject在线我得到异常

问题是什么?

0 投票
1 回答
135 浏览

java - 无法使用 genson 序列化 scala 类

我有一个问题,我无法toJson使用 Scala 类。它输出一个空的 json 字符串。:{}

这些类填充了它们的成员变量。我尝试了自定义 genson 类和默认 genson 类。两者产生相同的输出。不过,案例类工作正常。

难道我做错了什么?下面的代码和输出

我有一些看起来像这样的类:

然后是一个包含 main() 的对象

输出是:

0 投票
1 回答
45 浏览

scala - Genson 选择性使用 useClassMetadata 和 addAlias

我在我的项目中使用了 Genson,并且刚刚遇到了多态类型问题(尝试序列化泛型 X 的类)。

Genson 通过插入一些类元数据来处理这个问题,如此处所述

我想使用'addAlias'功能使json对类重构更改具有弹性,但是对我的一个多态类使用此功能似乎(作为副作用)为所有其他(非多态)类。

这意味着要使我的代码对类重构更改具有弹性,我需要为我的所有类(以及我可能添加的任何未来类)添加一个别名,这很痛苦并且容易被遗忘和错过。

有没有办法在genson中打开只包含一小部分类的类元数据并在其余部分中排除它?

我试过添加到 GensonBuilder .exclude("@class") .include("@class", classOf[X])

但这没有效果。

有任何想法吗?

0 投票
0 回答
304 浏览

serialization - 自 2.25.2 升级 Jersey 2.26 后反序列化时的 NPE

我正在尝试升级到 Jersey 2.26。我添加了所需的新 hk2 依赖项:

我使用 jersey-bom 2.26。

我使用 Genson 进行 JSON 绑定,如下所示:

以前,一切正常,现在我的一些测试失败了,出现了一个有点神秘的 NPE:

有趣的是,如果我从 Eclipse 运行,一切都会解决。

有没有人有关于调试/故障排除的提示?这是一个相当大的项目(带有rest-client模块等),因此在不知道哪些部分有趣的情况下很难发布相关代码。

0 投票
1 回答
87 浏览

java - 使用 Genson 将 map 转换为键值对

我正在使用Genson将 Java 类序列化为 JSON。其中一个类成员是 Map,我需要将其直接序列化为名称/值对。例如:

序列化我需要:

我尝试应用 Genson,我正在接近它的默认操作,输出是:

mp 中的键保证不会与 Demo 的任何成员发生名称冲突。

如何用 Genson 实现这个用例?

0 投票
4 回答
17302 浏览

json - 如何序列化/反序列化 Kotlin 密封类?

我有以下密封类:

如何序列化/反序列化 ViewModel 类的实例,比如 JSON 格式?

我尝试使用 Genson 序列化器/反序列化器库——它可以处理 Kotlin 数据类,也可以支持多态类型(例如,使用一些元数据来指定具体类型)。

但是,库在 Kotlinobject类型上失败,因为这些是没有公共构造函数的单例。我想我可以编写一个自定义的 Genson 转换器来处理它,但也许有更简单的方法来做到这一点?

0 投票
2 回答
138 浏览

android - 如何修复这个错误android:找不到类'com.owlike.genson.Genson'

05-17 12:00:20.058: E/dalvikvm(3150): 找不到类 'com.owlike.genson.Genson',引用自方法 com.example.ayit.MainActivity$2.run

0 投票
1 回答
558 浏览

java - JAX-RS(Genson + jersey):对象未转换为 json

我有一个resttomcat.

回复时 - 类型的对象ActionError作为json字符串发送给客户端。

ActionError将传递给客户

  1. ArrayStrings2个
  2. ArrayFieldError_
  3. 任意Object 有效负载(定义为泛型类型)。

在我的测试中,我作为payload类型的对象传递Employee

通过上述安排 - 一切正常。我得到的结果如下:

但是,如果我删除Arrayof FieldError( private ArrayList<FieldError> fieldErrors;) 部分,那么 -现在 ActionError只包含:

1.ArrayStrings

2.Object payload

然后奇怪的payload 是没有正确序列化,我得到:

是什么原因造成的?关于如何修复它的任何想法?

谢谢。

以下是类定义:

动作错误.java

FieldError.java

雇员.java

0 投票
2 回答
49 浏览

java - 从套接字流读取时 Genson 的行为非常奇怪

我正在尝试使用 Genson 库在服务器和客户端之间进行通信。我检测到以下问题:尝试向服务器发送消息时,当服务器上的 genson 尝试读取消息时,我的应用程序停止。

同时,如果我关闭客户端,消息将被完美读取和处理。我认为这是僵局,但不确定。

原生 Java 序列化不存在这样的问题。

这是我的服务器:

这是客户端:

我非常感谢对这个问题的任何帮助。提前致谢。


编辑:这真的很奇怪。我做了一些额外的测试,这就是我得到的:

附加类:

genson.serialize(Tester.TEST, socket.getOutputStream())在客户端请求中后,我得到了同样奇怪的结果。但是写完genson.serialize(new Tester(Double.NaN), socket.getOutputStream())结果是expexted的。

此外,如果我将 Tester 类中的唯一字段定义为 type int[],可以说,它仅适用于nullor的值new int[0]

除此之外,如果我尝试序列化和传输int0..9 范围内的整数,我观察到以下行为:同样奇怪的事情,除了当我关闭客户端时,服务器总是显示0值。

Double.NaN此外,对于像,和类似的常量Double.POSITIVE_INFINITYInteger.MAX_VALUE一点也不奇怪(一切都按预期工作)。

对于那些额外的测试Genson类定义如下:

请注意,当 ser/deser 使用流向/从文件传输时没有这样的问题: