使用JAVA API将FHIR资源序列化为JSON

时间:2014-06-05 00:42:28

标签: java json hl7-fhir

我正在尝试将FHIR ResourceResourceOrFeed对象转换为JSON字符串。我在Java实现中找不到任何可用的API方法。

有可用于.NET API的序列化程序,但类似的API不适用于Java实现。

有关如何将ResourceOrFeed对象转换为实际字符串JSON表示的任何指针?

Spring Jackson转换器的默认转换对我有用,但它没有输出正确的JSON,我也不想编写自定义的Object mapper。

2 个答案:

答案 0 :(得分:4)

尝试HAPI fhir:http://hapifhir.io/

要在pom文件中添加的Maven依赖项:

<dependency>
        <groupId>ca.uhn.hapi.fhir</groupId>
        <artifactId>hapi-fhir-base</artifactId>
        <version>2.2-SNAPSHOT</version>
</dependency>

Java片段:

import org.hl7.fhir.dstu3.model.*;
import ca.uhn.fhir.context.FhirContext;
// for other imports use your IDE. 

public void printPatientJSON() {
    FhirContext ourCtx = FhirContext.forDstu3();

    Patient patient = new Patient();
    patient.addName().addFamily("PATIENT");

    // now convert the resource to JSON
    String output = ourCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient);

    System.out.println(output);
}

答案 1 :(得分:1)

这是可以做到的一种方式:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
new org.hl7.fhir.instance.formats.JsonComposer().compose(bytes, feed, true);
return new String(bytes.toByteArray());