【问题标题】:Parsing FHIR Bundles In Java using JSON使用 JSON 在 Java 中解析 FHIR 包
【发布时间】:2014-04-09 23:52:16
【问题描述】:

我无法将传入的 Bundle 请求 (JSON) 解析为 Java 数据对象。解析器似乎无法识别"resourceType": "Bundle"。解析器在JsonParserBaseif (json.has("feed")) 语句上失败。我也尝试过使用"resourceType": "feed",但没有运气。

Java 实现不提供具体的解析器,但它可用于 .NET 版本。我的应用程序是基于 Java 的,它无法识别传入的 Bundle 请求。我正在使用org.hl7.fhir.instance.formats.JsonParserparseGeneral() 方法。

是否有可用的第三方解析器或者我遗漏了什么?

【问题讨论】:

  • 有人认为您正在使用某种编程语言进行此操作?并使用某种 JSON 解析器,并且可能是直接从 JSON 创建对象的那些古怪设置之一?但我们永远不会知道,对吧,因为你什么都没告诉我们!
  • 很抱歉。通过添加更多详细信息来编辑问题。
  • 有超过 2 打不同的 JSON 解析器。不熟悉你描述的那个。但是任何解析器都应该能够解析合法的 JSON。问题在于基本解析器的附加组件,它们要么试图强制执行“模式”,要么试图直接从 JSON 创建 Java 对象,而无需干预您编写的逻辑。除非您描述它们,否则我们不可能知道这些。
  • 请注意,您应该访问 json.org 并花 5-10 分钟来学习 JSON 语法。您应该“捕获”您正在使用的 JSON 源并通过“在线 JSON 解析器”运行它,以验证它是有效的 JSON 并且在传输过程中没有损坏。另外,将 JSON 的问题部分编辑到您的问题中。
  • 我已经在我正在使用的问题中定义了解析器 (org.hl7.fhir.instance.formats.JsonParser)。此问题特定于 FHIR (Hl7) 标准。我已经准备好数据对象,但是 HL7 特定的 JSON 解析器没有将其映射到定义的集合。我要求您仅在您从事过这项技术工作的情况下才回答或提供 cmets,并且不要为了回答而回答。显然,我有一个要解析的有效 JSON 字符串。这不是我第一次使用 JSON。

标签: java json hl7-fhir


【解决方案1】:

这是我在您提出问题前几个小时修复的 Java 解析器中的一个错误。您可以从 FHIR gForge 获得最新的固定解析器(请参阅http://wiki.hl7.org/index.php?title=FHIR_Build_Process 以获取访问权限),我们正在开发新版本(http://hl7.org/fhir 和通过 maven)。

不确定这是什么意思:“Java 实现没有提供具体的解析器,而它可用于 .NET 版本”。我认为Java解析器是具体的。在这种情况下,这是错误的。

【讨论】:

  • 是的,我的意思是一样的。我找不到名为“Bundle.java”的东西,我猜它在 .NET 世界中可用。我已经弄清楚它将如何工作。如果我将完整的请求包含在"feed" 中,我可以将其转换为数据对象。这就是我所做的。请提供您对此的意见。 ResourceOrFeed resourceorFeed = jsonParser.parseGeneral(new ByteArrayInputStream(jsonString.getBytes()));另外,你能简单解释一下你修复了什么错误吗?
  • 在 java 参考实现中,该类被称为“AtomFeed”而不是 Bundle - 主要是因为一旦我们开始使用 JSON 变体,该类就早于我们决定调用事物 Bundle 的原因。我在解析器中所做的更改是它不再查找“feed”对象,而是按照规范查找 resourceType : Bundle
  • 听起来不错。已申请 SVN 帐号。激活帐户后将结帐最新版本。有没有可以匿名结账的SVN服务器?
猜你喜欢
  • 1970-01-01
  • 2016-01-15
  • 2018-03-31
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多