2016-08-03 35 views
0

Ich habe einen Termin json, die ich auf DSTU2 HAPI FHIR JSON Objekt werfen muss. Gibt es eine Standardbibliothek für dasselbe? Google arbeitet Gson Bibliothek aber nicht geben Wert in Feldern ObjektCast JSON zu Hapi Fhir Objekt

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

Need oben json zu ca.uhn.fhir.model.dstu2.resource.Appointment Klasse zu konvertieren, für die ich verwenden

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

aber es gibt Termin Objekt mit leeren Feldern

+0

Was ist der erwartetes Endergebnis - um eine Terminklasse mit allen Feldern zu haben? Erstellen Sie dann die Appointment-Klasse und füllen Sie Felder aus. Es kann mehr als eine Codezeile erfordern, aber zumindest erreichen Sie, was Sie brauchen. – Shamil

Antwort

0

Sie können nur den Parser/Serializer-Funktionalität in HAPI gebaut verwenden:

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

Überprüfen Sie auch Ihren JSON, weil Sie in FHIR keine leeren Elemente oder Eigenschaften hinzufügen.

0

Anstatt GSON direkt zu verwenden, ist es besser, HAPI FHIR api zu verwenden, das intern GSON zum Parsen des JSON verwendet. Maven Abhängigkeit:

<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> 

// Weitere Informationen dazu, wie gradle und Maven zu Setup hinzugefügt, um die HAPI Fhir Abhängigkeit zu bekommen, um Ihr Projekt überprüfen Sie bitte http://hapifhir.io/download.html

Snippet:

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);