2016-08-03 26 views
0

私はDSTU2 HAPI FHIR jsonオブジェクトにキャストする必要があるアポイントメントjsonを持っています。同じような標準ライブラリがありますか? Googleのgsonライブラリ作品が、私はjsonをhapi fhirオブジェクトにキャスト

Appointment appointment = new Gson().fromJson(map.get("appointment"), Appointment.class); 
を使用しているためca.uhn.fhir.model.dstu2.resource.Appointmentクラスにjsonの上に変換する必要がある分野で

{ 
    "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" 
    } 
    ] 
} 

をオブジェクトに値を与えるものではありません

それはあなただけHAPIに組み込まれたパーサ/シリアライザ機能を使用することができます空のフィールド

+0

を予想される最終結果 - すべてのフィールドが設定されたAppointmentクラスを持つ?その後、Appointmentクラスを作成し、フィールドに値を設定します。 2行以上のコードが必要になるかもしれませんが、少なくともあなたが必要とするものは実現します。 – Shamil

答えて

0

に任命オブジェクトを与える:

String myJsonTxt = ""; // add your json here 
FhirContext ctx = FhirContext.forDstu2(); 
Appointment app = (Appointment) ctx.newJsonParser().parseResource(myJsontxt); 

また、FHIRでは空の要素やプロパティを追加しないため、jsonを確認してください。

0

GSONを直接使用するのではなく、GSONを内部的に使用してJSONを解析するHAPI FHIR APIを使用する方がよいでしょう。 Mavenの依存関係:HAPI fhir依存関係を取得する方法に、セットアップのGradleと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> 

//詳細はプロジェクトに追加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); 
関連する問題