问题标签 [jsonb-api]

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 投票
2 回答
39 浏览

websphere-liberty - 使用 json-b api 检查 json 字段

我正在使用 json 绑定 API 来解析部署在 Liberty 应用程序服务器上的应用程序的 json 字符串。

假设我有如下给出的 json 字符串

String message = "{ "color" : "Black", "type" : "BMW" }";

我想遍历 json 字符串并检查应用程序逻辑中的每个 json 属性字段(颜色/类型)以查看它是否包含某些特定字符。

如何使用 json-b (Json Binding API) 来完成

0 投票
1 回答
30 浏览

json - 使用 JSON-B 从 JSON 中提取特定元素

使用 Jackson,我们可以从 JSON 字符串中提取特定元素并将其映射到相关类,如下所示:

如何使用 JSON-B 实现相同的效果?

0 投票
1 回答
174 浏览

java - JSONB 适用于日期减去一天

我正在尝试用 JSON 中的日期序列化一个简单的对象。为此,我使用 Java EE 的 JSONB 库。我宁愿使用 Date 对象而不是简单的 String,因为我希望数据是强类型的。

不幸的是,当我序列化对象 JSON 格式时,它似乎在日期上应用了减去一天,就好像它正在使用另一个语言环境或时区一样。

这是我的第一次尝试,使用默认语言环境:

结果是:{"myDate":"2021-03-18"}

然后我用美国语言环境做了第二个版本:

结果:{"myDate":"2021-03-18"}

然后我尝试指定一个时间并且它有效,但这不是一个解决方案:

结果:{"myDate":"2020-12-19"}

你能帮忙吗?

0 投票
2 回答
44 浏览

java - 如何使用 JSON-B 在生成的 JSON 表示中包含 Java 枚举的字段?

假设我有以下 Java 枚举:

然后System.out.println(JsonbBuilder.create().toJson(Code.Code1))会导致""Code1". 我想得到以下结果:

有没有一种舒适的方法来实现这一目标?也许我可以使用任何注释?还是必须实现自定义适配器?

顺便说一句:org.json.JSONObject默认情况下会产生所需的格式。

0 投票
0 回答
48 浏览

java - JSON-B 对象到字符串

我有一个简单的 Id Value-Object 封装和硬输入我的 id。这是一个简单的泛型,内部使用 UUID。这是我的课:

当前序列化/反序列化 JSON-B 时会创建一个空对象(可能是因为我没有公共字段)。是否可以更改(反)序列化以将此对象表示为单个字符串而不是 json 对象?

0 投票
1 回答
363 浏览

java - 通过 JSON-B + Jax-RS 使用 Java 记录

我的项目使用带有 JAX-RS 的 JSON-B。我使用的框架是 Quarkus 并使用 Java 11。我尝试升级到 Java 16 并使用 Java Records。JSON-B 和 Records 似乎不能很好地工作。

我试过@JsonbCreator。但是这个注解只适用于单个构造函数。

我还尝试使用此处所示的 Apache Johnzon ( https://adambien.blog/roller/abien/entry/java_14_java_record_json )。但是 Quarkus Resteasy 没有 Johnzon 绑定。

是否有可以让我切换到 Java Records 的解决方案?

谢谢

0 投票
0 回答
42 浏览

java - JSONB 替代 Jackson @JsonAnySetter 和 @JsonAnyGetter

我在 Jsonb 文档中搜索了替代品,但找不到任何令人满意的东西。我们在这个项目中出于不同的原因使用 Jsonb 而不是 Jackson,并且获得相同的通用行为会很好。

这是我们在另一个项目中使用 Jackson 成功使用的代码,我们希望类似地使用 Jsonb。

0 投票
1 回答
62 浏览

jakarta-ee - 除了@JsonbIgnore,是否可以要求在 jax-rs (jersey+moxy) JSON 序列化中明确包含对象的字段?

我有一个实现接口的 JPA 实体,我想通过 jax-rs 端点仅公开该接口定义的字段。看起来像:

即使我让我的 jax-rs 资源@GET方法返回ConnectedAppExternal响应,Moxy 也会序列化整个 JPA 实体及其所有属性,因此我最终要么必须添加@JsonbIgnore到每个我不想公开的新内部实体字段;或者定义一个只包含暴露接口字段的 DTO,这意味着大量的映射和对齐开销(更多代码 => 更多错误/意外泄漏)。

(我很确定没有,因为我已经看过序列化程序代码,但只是要求一个像这样工作的替代方案;)

...或者至少避免由于 Moxy 默认使用 getter/setter 序列化每个字段而需要显式@JsonbIgnore/@JsonbTransient排除非公开字段,而是需要显式@JsonbProperty包含要 JSON 序列化/公开的字段

0 投票
0 回答
34 浏览

java - Payara 4 到 Payara 5 迁移 - Json 问题

从 Payara 4 迁移到 Payara 5 时,我在序列化时遇到了 json 问题。

问题:“无法识别的字段“XXX”(XXX 类),未标记为可忽略

在迁移手册中,它说我们可以继续使用 JAX-RS,但我看到短期内需要将 JAX 更新为 JSON-B,因此想知道最好的方法。如果是这样,我是否可以在构建器本身中解决此更改,或者我是否需要更新每次出现的 XML 注释并用 JSON 替换它们?

另外,如果 Payara 5 的嵌入解决方案中有 JSON-B 使用的主要类,你能告诉我吗?

谢谢。