问题标签 [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.
json - 如何通过 Genson/Jersey 配置日期格式化程序?
我将 Jersey 用于我的 RESTful 服务并使用 Genson 来执行我的 JSON/POJO 转换。Genson 没有设置,我只是将它放到类路径中,它就可以工作,除了它在日期解析时抛出错误,因为格式是意外的。
现在,如果我要使用 Gson 作为 servlet 执行此操作,我会在我维护的 Gson 实例上设置日期格式。这会强制 POJO 的解析使用正确的格式。我看到 Genson 有一个类似的接口,但我不知道如何从 Jersey servlet 服务或 Spring 上下文中获取实例,以便我设置格式。
所以,简短的问题是:当我从泽西岛开始时,如何为 Genson 设置日期格式?
java - Genson 可以处理对象上的通用嵌套字段吗?
基本上,我有一些 Java 对象,我希望尽可能少地把它们序列化为 JSON。现在我正在使用 Tomcat、Jersey 和 Genson。
我发现这样的事情对 Genson 不起作用(当然,这是一个玩具示例):
上面的输出是这样的:
Genson 的优点在于我只是将它放在了我的 WebContent 文件夹中,它被用来代替 Jersey 捆绑的任何东西——不需要额外的配置。如果有一种非常直接的方法可以让像上面这样的对象序列化为 JSON,而不必为每个模式编写某种转换器,我很乐意将它与 Jersey 而不是 Genson 一起使用,但 Genson 并没有因此让我失望远远不足。
那么 - 我如何按摩 Genson 以正确序列化 - 或者什么是无痛处理这类事情的库?
谢谢!
java - 是否可以将 JSON 序列化/反序列化为 Java DTO,并在地图中添加额外的字段?
我有这样的 DTO:
我希望它序列化到/从以下 JSON:
有谁知道如何使用 Jackson 或 Genson 来做到这一点?基本上,我希望对 DTO 中声明的字段进行自动类型转换,但任何“额外”都可以进入 params 映射。
java - 如何将多个集合从 Hibernate 类映射到 Json?
这是一个类,我已经映射到 Hibernate:
但是当我试图将这个类映射到 JSon 时,我总是有一个堆栈。我使用的是 Jackson Mapper、Genson 和 Google Gson,但他们无法映射这段代码(或者我不知道如何映射)。谁能告诉我,如何正确映射这种集合?
java - 使用通用参数使用 REST 服务
我正在尝试使用此 REST 服务
通过这个 javascript 函数传递一个 JSON 对象:
但是,我得到了这个例外:
有没有办法使用 JSON 来使用带有通用参数的 REST 服务?我用谷歌搜索了很多但没有成功。我正在使用 Jersey 1.8、genson 0.94、jboss 7.1。
java - 使用genson将json字符串反序列化为流体对象
我正在尝试将 json 文档中的简单字符串元素数组转换为 java 列表,该列表位于使用 genson 的 bean 内。我期待这会自动发生,但它不起作用。我错过了什么吗?
这是我的 Json 字符串:
这是我的对象的输出,表明我的权限列表没有被填充:
我的 DefaultRole 类如下所示:
JAXB 注释仅用于 XML 转换。他们不应该在这里发挥作用。
我正在创建这样的 Genson 对象:
我的反序列化调用:
有没有人有关于如何将我的 json 字符串数组反序列化为驻留在 bean 内的 java List 对象的提示?
编辑[部分解决-还有一个问题未解决]
我现在更进一步了。我回到根源,从一个简单的包含字符串列表的基本 bean 开始。正如预期的那样,这是第一次。与上一个对象的区别主要是这个遵循bean规范。另一个对象(DefaultRole)遵循流体对象模式(不确定这是否是正确的定义)。基本上,我不是将 setter 方法设为 void,而是返回对象,以便可以轻松地以流畅的方式设置下一个值。
所以这有效:
这不起作用:
有没有其他人遇到过这种情况,以及将我所有的 bean 转换为遵守 bean 规范的替代方法是什么?是使用纯字段级填充而不是通过 setter 方法的唯一选择吗?
编辑[几乎解决]
嗨,我不确定如何最好地回答需要代码来帮助理解我所做的问题。
无论如何,非常感谢您的帮助。我真的很喜欢第三个选项,这是我一直在寻找的类型。不幸的是,我现在收到错误“没有找到类型类 xxx.DefaultRole 的构造函数”。根据您在回答中所说的,当搜索继续时返回 Trilean.UNKNOWN 时不应该发生这种情况。
我将以下代码添加到我的 genson-builder 中:
我的 Reflect.isSetter(method) 看起来像这样(代码改编自这里:http ://www.asgteach.com/blog/?p=559 ):
BaseResolver 为尚未实现的所有内容返回 Trilean.UNKNOWN。因此它应该使用标准逻辑找到构造函数,不是吗?
编辑[已解决]
为了完整起见,我将发布实际有效的代码:
需要注意的是,“.set(new BeanMutatorAccessorResolver.BaseResolver()”必须替换为“.with(new BeanMutatorAccessorResolver.BaseResolver()”(注意“with”而不是“set”)。这很重要因为不再使用标准解析器,否则您最终会遇到我遇到的错误,无法再找到构造函数。
isSetter 方法如下所示:
这里需要注意的是,在将返回类型与声明类进行比较时,我最初使用的是“equals”而不是“isAssignableFrom”。这只适用于返回类型与声明它的类完全相同的类。当使用接口作为返回值时,它不再起作用。通过使用“method.getReturnType().isAssignableFrom(method.getDeclaringClass())”,这也适用于接口(包括超级接口)。
谢谢,迈克尔
java - 泽西 Web 服务中的 Genson 库用于反序列化数据
我用过genson有一种方法可以将复杂的数据对象发送到java应用程序中的jersey rest webservices。
虽然当我尝试发送浮点数时,我收到以下错误:
加速度计是我要传递的类,它有一个参数,即 y,它的类型是浮点数。这个错误是什么?
这是加速度计类:
我传递的json如下:
这应该可以,我在这个 y 领域遇到了问题。我不明白,我发送的位置也有 - 纬度或经度字段,但它们是双倍的。浮动不能有-?
java - 仅在 Genson 中为非具体类型添加类元数据
所以我可以执行以下操作new GensonBuilder().useClassMetadata(true)
,Genson 将@Class
在序列化时使用类名向 Json 对象添加一个元素。
有没有什么方法可以让我只有在涉及与编译时间不同的运行时类型时才会发生这种情况。
例如
我希望在序列化时有一个@Class
元素myType2
,但不是myType
.
backbone.js - 使用 Genson 的 JSON 格式错误
我得到以下 json 字符串作为 JSON 响应。我正在使用 genson 生成 json 字符串。在客户端,我重写了骨干集合的解析方法,将 json 字符串转换为对象集合。我不觉得跟随 JSON 响应有什么问题。
genson - Genson not throwing UnrecognizedPropertyException
I have json POST request with the following {"token":"abcd","m":"n"} where as the java bean holds:
On using Genson, it is not throwing UnrecognizedPropertyException which otherwise happen if i remove Genson dependency from pom.xml