问题标签 [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.
websphere-liberty - 使用 json-b api 检查 json 字段
我正在使用 json 绑定 API 来解析部署在 Liberty 应用程序服务器上的应用程序的 json 字符串。
假设我有如下给出的 json 字符串
String message = "{ "color" : "Black", "type" : "BMW" }";
我想遍历 json 字符串并检查应用程序逻辑中的每个 json 属性字段(颜色/类型)以查看它是否包含某些特定字符。
如何使用 json-b (Json Binding API) 来完成
json - 使用 JSON-B 从 JSON 中提取特定元素
使用 Jackson,我们可以从 JSON 字符串中提取特定元素并将其映射到相关类,如下所示:
如何使用 JSON-B 实现相同的效果?
java - JSONB 适用于日期减去一天
我正在尝试用 JSON 中的日期序列化一个简单的对象。为此,我使用 Java EE 的 JSONB 库。我宁愿使用 Date 对象而不是简单的 String,因为我希望数据是强类型的。
不幸的是,当我序列化对象 JSON 格式时,它似乎在日期上应用了减去一天,就好像它正在使用另一个语言环境或时区一样。
这是我的第一次尝试,使用默认语言环境:
结果是:{"myDate":"2021-03-18"}
然后我用美国语言环境做了第二个版本:
结果:{"myDate":"2021-03-18"}
然后我尝试指定一个时间并且它有效,但这不是一个解决方案:
结果:{"myDate":"2020-12-19"}
你能帮忙吗?
java - 如何使用 JSON-B 在生成的 JSON 表示中包含 Java 枚举的字段?
假设我有以下 Java 枚举:
然后System.out.println(JsonbBuilder.create().toJson(Code.Code1))
会导致""Code1"
. 我想得到以下结果:
有没有一种舒适的方法来实现这一目标?也许我可以使用任何注释?还是必须实现自定义适配器?
顺便说一句:org.json.JSONObject
默认情况下会产生所需的格式。
java - JSON-B 对象到字符串
我有一个简单的 Id Value-Object 封装和硬输入我的 id。这是一个简单的泛型,内部使用 UUID。这是我的课:
当前序列化/反序列化 JSON-B 时会创建一个空对象(可能是因为我没有公共字段)。是否可以更改(反)序列化以将此对象表示为单个字符串而不是 json 对象?
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 的解决方案?
谢谢
java - JSONB 替代 Jackson @JsonAnySetter 和 @JsonAnyGetter
我在 Jsonb 文档中搜索了替代品,但找不到任何令人满意的东西。我们在这个项目中出于不同的原因使用 Jsonb 而不是 Jackson,并且获得相同的通用行为会很好。
这是我们在另一个项目中使用 Jackson 成功使用的代码,我们希望类似地使用 Jsonb。
jakarta-ee - 除了@JsonbIgnore,是否可以要求在 jax-rs (jersey+moxy) JSON 序列化中明确包含对象的字段?
我有一个实现接口的 JPA 实体,我想通过 jax-rs 端点仅公开该接口定义的字段。看起来像:
即使我让我的 jax-rs 资源@GET
方法返回ConnectedAppExternal
响应,Moxy 也会序列化整个 JPA 实体及其所有属性,因此我最终要么必须添加@JsonbIgnore
到每个我不想公开的新内部实体字段;或者定义一个只包含暴露接口字段的 DTO,这意味着大量的映射和对齐开销(更多代码 => 更多错误/意外泄漏)。
- 那么:有没有一种简单的方法可以让 Moxy 只序列化这些
ConnectedAppExternal
接口定义的属性?(也许我在研究https://www.eclipse.org/eclipselink/documentation/3.0/moxy/json.htm#sthref204上的文档并遵循序列化程序流程时错过了 Moxy marshaller/unmarshaller 配置设置?)
(我很确定没有,因为我已经看过序列化程序代码,但只是要求一个像这样工作的替代方案;)
...或者至少避免由于 Moxy 默认使用 getter/setter 序列化每个字段而需要显式@JsonbIgnore
/@JsonbTransient
排除非公开字段,而是需要显式@JsonbProperty
包含要 JSON 序列化/公开的字段?
java - Payara 4 到 Payara 5 迁移 - Json 问题
从 Payara 4 迁移到 Payara 5 时,我在序列化时遇到了 json 问题。
问题:“无法识别的字段“XXX”(XXX 类),未标记为可忽略“
在迁移手册中,它说我们可以继续使用 JAX-RS,但我看到短期内需要将 JAX 更新为 JSON-B,因此想知道最好的方法。如果是这样,我是否可以在构建器本身中解决此更改,或者我是否需要更新每次出现的 XML 注释并用 JSON 替换它们?
另外,如果 Payara 5 的嵌入解决方案中有 JSON-B 使用的主要类,你能告诉我吗?
谢谢。