1

DSTU2 HAPI FHIR json オブジェクトにキャストする必要がある予定の json があります。同じために利用可能な標準ライブラリはありますか? Google gson ライブラリは機能しますが、フィールド内のオブジェクトに値を与えません

{
  "resourceType": "Appointment",
  "id": "",
  "status": "proposed",
  "reason": {
    "text": "Regular checkup"
  },
  "description": "",
  "slot": [
    {
      "reference": "bfgf5dfdf4e45g"
    }
  ],
  "comment": "Regular yearly visit",
  "participant": [
    {
      "actor": {
        "reference": "9sdfsndjkfnksdfu3yyugbhjasbd"
      },
      "required": "required"
    },
    {
      "actor": {
        "reference": "78hjkdfgdfg223vg"
      },
      "required": "required"
    },
    {
      "actor": {
        "reference": "sdfs3df5sdfdfgdf"
      },
      "required": "required"
    }
  ]
}

上記のjsonを、使用するca.uhn.fhir.model.dstu2.resource.Appointmentクラスに変換する必要があります

Appointment appointment = new Gson().fromJson(map.get("appointment"), Appointment.class);

しかし、空のフィールドを持つ予定オブジェクトを提供します

4

2 に答える 2

2

GSON を直接使用するよりも、GSON を内部的に使用して JSON を解析する HAPI FHIR API を使用することをお勧めします。Maven の依存関係:

<dependency>
   <groupId>ca.uhn.hapi.fhir</groupId>
   <artifactId>hapi-fhir-base</artifactId>
   <version>2.1</version>
</dependency>
<dependency>
   <groupId>ca.uhn.hapi.fhir</groupId>
   <artifactId>hapi-fhir-structures-dstu3</artifactId>
   <version>2.1</version>
</dependency>

// gradle と maven をセットアップして HAPI fhir 依存関係をプロジェクトに追加する方法の詳細については、http://hapifhir.io/download.html を確認してください。

スニペット:

FhirContext ourFhirCtx = FhirContext.forDstu3();
IParser parser=ourFhirCtx.newJsonParser().setPrettyPrint(true);
String string="{\"resourceType\":\"Appointment\",\"id\":\"\",\"status\":\"proposed\",\"reason\":{\"text\":\"Regular checkup\"},\"description\":\"\",\"slot\":[{\"reference\":\"bfgf5dfdf4e45g\"}],\"comment\":\"Regular yearly visit\",\"participant\":[{\"actor\":{\"reference\":\"9sdfsndjkfnksdfu3yyugbhjasbd\"},\"required\":\"required\"},{\"actor\":{\"reference\":\"78hjkdfgdfg223vg\"},\"required\":\"required\"},{\"actor\":{\"reference\":\"sdfs3df5sdfdfgdf\"},\"required\":\"required\"}]}";
Appointment parsed=parser.parseResource(Appointment.class,string);
于 2016-11-22T07:00:48.860 に答える