问题标签 [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.
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类date
和value
发送时代码如何不起作用DateTime
?
注意:API 中的其他一切工作正常:发布用户对象、获取包含日期时间的数据、发回日期时间
编辑
我发现 joda-time 有一个扩展。我添加了以下代码
但它仍然给我同样的结果
java - 处理部分json文件
我有一个json
看起来像这样的文件
我想根据需要races
或npc
单独检索数据。我genson
用来解析JSON
. 我这样解析
例如解析的方法races
看起来像这样
在调试它populates
变量result
就好了,但endObject
在线我得到异常
问题是什么?
java - 无法使用 genson 序列化 scala 类
我有一个问题,我无法toJson
使用 Scala 类。它输出一个空的 json 字符串。:{}
这些类填充了它们的成员变量。我尝试了自定义 genson 类和默认 genson 类。两者产生相同的输出。不过,案例类工作正常。
难道我做错了什么?下面的代码和输出
我有一些看起来像这样的类:
然后是一个包含 main() 的对象
输出是:
scala - Genson 选择性使用 useClassMetadata 和 addAlias
我在我的项目中使用了 Genson,并且刚刚遇到了多态类型问题(尝试序列化泛型 X 的类)。
Genson 通过插入一些类元数据来处理这个问题,如此处所述。
我想使用'addAlias'功能使json对类重构更改具有弹性,但是对我的一个多态类使用此功能似乎(作为副作用)为所有其他(非多态)类。
这意味着要使我的代码对类重构更改具有弹性,我需要为我的所有类(以及我可能添加的任何未来类)添加一个别名,这很痛苦并且容易被遗忘和错过。
有没有办法在genson中打开只包含一小部分类的类元数据并在其余部分中排除它?
我试过添加到 GensonBuilder
.exclude("@class")
.include("@class", classOf[X])
但这没有效果。
有任何想法吗?
serialization - 自 2.25.2 升级 Jersey 2.26 后反序列化时的 NPE
我正在尝试升级到 Jersey 2.26。我添加了所需的新 hk2 依赖项:
我使用 jersey-bom 2.26。
我使用 Genson 进行 JSON 绑定,如下所示:
以前,一切正常,现在我的一些测试失败了,出现了一个有点神秘的 NPE:
有趣的是,如果我从 Eclipse 运行,一切都会解决。
有没有人有关于调试/故障排除的提示?这是一个相当大的项目(带有rest-client模块等),因此在不知道哪些部分有趣的情况下很难发布相关代码。
java - 使用 Genson 将 map 转换为键值对
我正在使用Genson将 Java 类序列化为 JSON。其中一个类成员是 Map,我需要将其直接序列化为名称/值对。例如:
序列化我需要:
我尝试应用 Genson,我正在接近它的默认操作,输出是:
mp 中的键保证不会与 Demo 的任何成员发生名称冲突。
如何用 Genson 实现这个用例?
json - 如何序列化/反序列化 Kotlin 密封类?
我有以下密封类:
如何序列化/反序列化 ViewModel 类的实例,比如 JSON 格式?
我尝试使用 Genson 序列化器/反序列化器库——它可以处理 Kotlin 数据类,也可以支持多态类型(例如,使用一些元数据来指定具体类型)。
但是,库在 Kotlinobject
类型上失败,因为这些是没有公共构造函数的单例。我想我可以编写一个自定义的 Genson 转换器来处理它,但也许有更简单的方法来做到这一点?
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
java - JAX-RS(Genson + jersey):对象未转换为 json
我有一个rest
在tomcat
.
回复时 - 类型的对象ActionError
作为json
字符串发送给客户端。
ActionError
将传递给客户
Array
Strings
2个Array
的FieldError
_- 任意
Object
有效负载(定义为泛型类型)。
在我的测试中,我作为payload
类型的对象传递Employee
。
通过上述安排 - 一切正常。我得到的结果如下:
但是,如果我删除Array
of FieldError
( private ArrayList<FieldError> fieldErrors;
) 部分,那么 -现在 ActionError
只包含:
1.Array
的Strings
2.Object
payload
然后奇怪的payload
是没有正确序列化,我得到:
是什么原因造成的?关于如何修复它的任何想法?
谢谢。
以下是类定义:
动作错误.java
FieldError.java
雇员.java
java - 从套接字流读取时 Genson 的行为非常奇怪
我正在尝试使用 Genson 库在服务器和客户端之间进行通信。我检测到以下问题:尝试向服务器发送消息时,当服务器上的 genson 尝试读取消息时,我的应用程序停止。
同时,如果我关闭客户端,消息将被完美读取和处理。我认为这是僵局,但不确定。
原生 Java 序列化不存在这样的问题。
这是我的服务器:
这是客户端:
我非常感谢对这个问题的任何帮助。提前致谢。
编辑:这真的很奇怪。我做了一些额外的测试,这就是我得到的:
附加类:
写genson.serialize(Tester.TEST, socket.getOutputStream())
在客户端请求中后,我得到了同样奇怪的结果。但是写完genson.serialize(new Tester(Double.NaN), socket.getOutputStream())
结果是expexted的。
此外,如果我将 Tester 类中的唯一字段定义为 type int[]
,可以说,它仅适用于null
or的值new int[0]
。
除此之外,如果我尝试序列化和传输int
0..9 范围内的整数,我观察到以下行为:同样奇怪的事情,除了当我关闭客户端时,服务器总是显示0
值。
Double.NaN
此外,对于像,和类似的常量Double.POSITIVE_INFINITY
,Integer.MAX_VALUE
一点也不奇怪(一切都按预期工作)。
对于那些额外的测试Genson
类定义如下:
请注意,当 ser/deser 使用流向/从文件传输时没有这样的问题: