java - 如何从 JSON 解析 DiagnosticReport 并再次打印相同的 JSON?

标签 java json report hl7-fhir hapi-fhir

我正在从 JSON 文件解析诊断报告,它工作正常,但是当我尝试通过 IParser 编码函数打印相同的 JSON 文件时,JSON 与原始文件不同。我需要打印相同的 JSON。

原始 JSON(字符串 json)

    {
  "resourceType": "DiagnosticReport",
  "text": {
    "status": "generated",
    "div": "<div><p><b>Narrative A</b></p></div>"
  },
  "contained": [
    {
      "resourceType": "Patient",
      "id": "1"
    },
    {
      "resourceType": "Observation",
      "id": "2",
      "meta": {
        "lastUpdated": "2017-03-22T22:00:28.089-05:00"
      },
      "text": {
        "div": "<div><p><b>Narrative B</b></p></div>"
      },
      "comment": "a comment"
    }
  ],
  "status": "appended",
  "code": {
    "coding": [
      {
        "code": "Report01"
      }
    ]
  },
  "subject": {
    "reference": "#1"
  },
  "effectiveDateTime": "2017-03-22T22:00:28-05:00",
  "issued": "2017-03-22T22:00:28.070-05:00",
  "result": [
    {
      "reference": "#2"
    }
  ]
}

第一步是解析,第二步是编码和打印

DiagnosticReport report = parser.parseResource(DiagnosticReport.class, json);
String encodeJSON = parser.encodeResourceToString(report);
System.out.println(encodeJSON);

结果不同,因为观察中的文本标签没有显示

{
  "resourceType": "DiagnosticReport",
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p><b>Narrative A</b></p></div>"
  },
  "contained": [
    {
      "resourceType": "Patient",
      "id": "1"
    },
    {
      "resourceType": "Observation",
      "id": "2",
      "meta": {
        "lastUpdated": "2017-03-22T22:00:28.089-05:00"
      },
      "comment": "a comment"
    }
  ],
  "status": "appended",
  "code": {
    "coding": [
      {
        "code": "Report01"
      }
    ]
  },
  "subject": {
    "reference": "#1"
  },
  "effectiveDateTime": "2017-03-22T22:00:28-05:00",
  "issued": "2017-03-22T22:00:28.070-05:00",
  "result": [
    {
      "reference": "#2"
    }
  ]
}

我正在尝试此操作,因为我的软件生成了一个诊断报告,并且我需要将其完全打印在 JSON 文件中。

感谢您的帮助!!

最佳答案

在包含的资源中包含叙述是不合法的,包含元/最后更新也是不合法的。有一些不变量禁止这两者。理想情况下,解析软件应该抛出异常,但是序列化程序在序列化不应该存在的内容时遇到困难也就不足为奇了。

查看 dstu3 中的 dom-1 和 dom-4或dstu2

关于java - 如何从 JSON 解析 DiagnosticReport 并再次打印相同的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020180/

相关文章:

java - 类是原始类型。对泛型 Class<T> 的引用应该被参数化

java - Java中的Json解析仅通过提供一次键从数组中获取值?

c# - 如何使用 PrintDocument 在热敏打印机上打印文本文件?

php - 使用核心 php 和 mysql 创建动态报告

java - 如何在 java web 项目中创建报告?

java - 不需要的通用参数

java - 如何使用 MongoDB 在实体类中配置唯一的列名?

java - JFrame 找不到 'pack' 方法

javascript - 这个错误信息是什么意思。来自 Node/表达的意思?

javascript - 限制 JSON 结果的数量