2016-08-03 3 views
0

У меня есть назначение json, которое мне нужно отправить в DSTU2 HAPI FHIR json object. Любая стандартная библиотека доступна для нее? Библиотека gson Google работает, но не дает значение объекта в поляхВставить json в hapi fhir объект

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

, но это дает объект назначения с пустыми полями

+0

Что такое ожидаемый конечный результат - иметь класс Appointment со всеми заполненными полями? Затем создайте класс Appointment и заполните поля. Это может занять более одной строки кода, но по крайней мере вы достигаете того, что вам нужно. – Shamil

ответ

0

Вы можете просто использовать функциональные возможности синтаксического анализа/сериализатора встроенный в HAPI:

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

Также проверьте свой json, потому что в FHIR вы не добавляете пустые элементы или свойства.

0

Вместо использования функции GSON лучше использовать HAPI FHIR api, который внутренне использует GSON для разбора JSON. 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);