支持 DOM 样式访问的 Java JSON 库

2023-12-01

我正在用 Java 编写一个 JSON 风格的查询引擎,它将受益于通过 DOM 路径查询 JSON 文档的能力(就像在 Javascript 中所做的那样)。我检查过 GSON 和 Jackson,但似乎都不支持这一点。

除了我自己的之外,有人知道任何替代方案或其他建议吗?

e.g.

//Example JSON document
String json = "{ somewhere : {deep : { inside : 123 } }, anarray : [{val=1}] }";
JsonElement root = JsonParser.parse(json);

//What I'd like:
JsonElement node = root.getByDOM("somewhere.deep");  // {inside : 123}
JsonElement node2 = root.getByDOM("somewhere.deep.inside");  // 123
JsonElement node3 = root.getByDOM("anarray[0].val");  // 1
//etc

杰克逊绝对支持这一点(参见“杰克逊 5 分钟”,查找“树模式”)例如:

JsonNode root = mapper.readTree(jsonSource);

我认为 GSON 也有类似的东西。

但无论您做什么,都不要尝试将 JSON 转换为 XML,然后使用 XML 工具 —— 这通常会给您带来很多麻烦,而且速度会很慢。这是因为 JSON 和 XML 数据模型从根本上来说是不兼容的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

支持 DOM 样式访问的 Java JSON 库 的相关文章

  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • Java SSLSocket:如何发送完整的服务器证书链?

    当我在 Java 7 中创建 SSLServerSocket 时 服务器正确使用我的服务器证书和密钥 该证书是由 ca 的子 ca 颁发的 因此 从根证书到服务器证书的完整链有四个证书 完整的链存在于密钥库 信任库中 但是 当客户端连接时
  • 如何更改SysDateTimePick32或CDateTimeCtrl的背景颜色?

    我似乎无法更改背景颜色SysDateTimePick32控制 在本例中为白色 在我的 Win32 MFC 应用程序中 我首先尝试覆盖OnCtlColor父窗口中的通知消息 甚至没有被调用 然后我尝试了子类化方法此处描述 这被称为正常 但控件
  • 变量数量与参数数量不匹配 - 是的,它们匹配

    因此 根据建议 我试图包含准备好的陈述 但 PHP 不接受我的代码 stmt link gt prepare SELECT COUNT FROM table WHERE company CONVERT utf8 USING latin1 C
  • 如何处理动画+自动容器大小

    我有这个动画 我想自动调整它的大小以适应内容 标题总是随着白天和用户的变化而变化 我想避免标题容器使用 100 的可用空间来进行进一步的动画 对于所有自动属性 标题只会在 2 5 秒后弹出 那么我该如何处理这个问题呢 typewriter
  • 将上传的文件保存在特定位置

    我有以下代码来处理服务器上的文件上传 但是如何将文件保存到服务器上的特定位置 import gwtupload server UploadAction import gwtupload server exceptions UploadAct
  • 启动HBASE,java.lang.ClassNotFoundException:org.apache.htrace.SamplerBuilder

    我尝试使用 start hbase sh 启动 HBASE 但是出现错误 java lang ClassNotFoundException org apache htrace SamplerBuilder 我尝试过添加各种 jar到各个文件
  • 哪里可以获得简单的 Boost 线程管理示例?

    所以我有一个简单的cpp文件 只有一个具有 1 个主函数和 3 个 int a la 公共变量 喜欢 int a int b int c void main startThredA startThredB while 1 c a b pri
  • PHP 5.4.17 替代“... 运算符”

    我想知道是否有人知道 PHP 5 6 x 及更高版本的替代方案 运算符 或 splat 运算符 我相信它被称为 我目前在 PHP 7 版本中所做的是 this gt callAction explode this gt routes aut
  • 工厂创建相同接口的不同对象

    我有1个接口 public interface ISummary int EventId get set 还有许多实现该接口的具体类 public class EmployeeSummary ISummary public int Even
  • 为什么 TRUE == "TRUE" 在 R 中是 TRUE?

    Why TRUE TRUE is TRUE in R 有没有等价的 in R Update 这些都在回归FALSE TRUE True TRUE true TRUE T 唯一的TRUE值为TRUE TRUE 如果检查identical 一切
  • 对于程序的不同运行,全局变量的地址是否相同?

    考虑以下代码片段 int i 10 int main cout lt lt i 一旦为程序生成了 exe 程序不同运行的输出是否相同 假设操作系统支持虚拟内存 编辑 这个问题特定于存储在数据段中的全局变量 由于这是第一个全局变量 因此地址应
  • JS下载多个文件

    我的目标是有一个脚本来下载给定数组内的所有文件 var links http file examples com wp content uploads 2017 10 file example JPG 100kB jpg http file
  • 从 Android Activity 类调用 Javascript 函数

    我正在开发需要使用参数调用 Javascript 函数的应用程序 为了演示 我在这里写了我的 Activity 代码 我想从中调用 js 函数 主要活动 WebView wView FloatingActionButton fab Cont
  • 按键将对象分组为二维数组

    我有一系列对象 这些对象有一个属性称为time 如果这些对象的时间相同 我想将它们分组到同一个数组中 00 00 id 1 time 00 05 id 1 time 00 15 id 1 time 00 20 id 2 time 00 05
  • 批量复制特定文件到子文件夹中

    我有一个 Windows 批处理文件 正在运行该文件以将特定文件移动到子文件夹中 ECHO OFF ECHO Start Copy setlocal enabledelayedexpansion set SOURCE DIR C Users
  • 将数组插入 PHP 文件

    这可能非常愚蠢 但我们还无法做到这一点 我们正在尝试将数组插入到 php 文件中 然而 我们可以将数组插入到 php 文件中 但格式不符合要求 我们有 2 个文件 文件1 php
  • 获取Flask应用程序的根路径

    我正在开发一个 Flask 扩展 我想在文件系统上的项目根路径中创建一个目录 假设我们有这样的目录结构 project app tests my folder manage py my folder 应该由扩展动态创建 它是一个测试实用程序
  • 为什么 findViewById() 在这里不能像 getActivity().findViewById() 一样工作?

    A placeholder fragment containing a simple view public static class PlaceholderFragment extends Fragment public Placehol
  • 如何控制用户输入的地址显示404

    我想在用户输入未知地址时显示 404 页面 如上图所示 之后我可以控制未知地址index php但不知道如何在之前的部分执行此操作index php part 我编写这段代码是为了控制用户输入的内容index php 看起来你的开发机器上有
  • 支持 DOM 样式访问的 Java JSON 库

    我正在用 Java 编写一个 JSON 风格的查询引擎 它将受益于通过 DOM 路径查询 JSON 文档的能力 就像在 Javascript 中所做的那样 我检查过 GSON 和 Jackson 但似乎都不支持这一点 除了我自己的之外 有人