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

How to parse a DiagnosticReport from a JSON and print the same JSON again?

我正在从 JSON 文件解析 DiagnosticReport,它工作正常,但是当我尝试通过 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);

而结果是不同的,因为 text 标签在 Observation 未显示

{
  "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 文件中。

感谢您的帮助!!

在包含的资源中进行叙述是不合法的,meta/lastUpdated 也是不合法的。存在禁止两者的不变量。理想情况下,解析软件应该抛出异常,但序列化程序在序列化不应该存在的内容时遇到问题也就不足为奇了。

dstu3 or dstu2

中查看dom-1和dom-4