Package ca.uhn.fhir.parser
Class JsonParser
- java.lang.Object
-
- ca.uhn.fhir.parser.BaseParser
-
- ca.uhn.fhir.parser.JsonParser
-
- All Implemented Interfaces:
IJsonLikeParser,IParser
public class JsonParser extends BaseParser implements IJsonLikeParser
This class is the FHIR JSON parser/encoder. Users should not interact with this class directly, but should useFhirContext.newJsonParser()to get an instance.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ca.uhn.fhir.parser.BaseParser
BaseParser.CompositeChildElement, BaseParser.ElementsPath, BaseParser.EncodeContext, BaseParser.EncodeContextPath, BaseParser.EncodeContextPathElement
-
-
Constructor Summary
Constructors Constructor Description JsonParser(FhirContext theContext, IParserErrorHandler theParserErrorHandler)Do not use this constructor, the recommended way to obtain a new instance of the JSON parser is to invokeFhirContext.newJsonParser().
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddoEncodeResourceToJsonLikeWriter(IBaseResource theResource, JsonLikeWriter theEventWriter, BaseParser.EncodeContext theEncodeContext)protected voiddoEncodeResourceToWriter(IBaseResource theResource, Writer theWriter, BaseParser.EncodeContext theEncodeContext)<T extends IBaseResource>
TdoParseResource(Class<T> theResourceType, JsonLikeStructure theJsonStructure)<T extends IBaseResource>
TdoParseResource(Class<T> theResourceType, Reader theReader)voidencodeResourceToJsonLikeWriter(IBaseResource theResource, JsonLikeWriter theJsonLikeWriter)EncodingEnumgetEncoding()Which encoding does this parser instance produce?static com.google.gson.GsonnewGson()IBaseResourceparseResource(JsonLikeStructure theJsonLikeStructure)Parses a resource from a JSON-like data structure<T extends IBaseResource>
TparseResource(Class<T> theResourceType, JsonLikeStructure theJsonLikeStructure)Parses a resource from a JSON-like data structureIParsersetPrettyPrint(boolean thePrettyPrint)Sets the "pretty print" flag, meaning that the parser will encode resources with human-readable spacing and newlines between elements instead of condensing output as much as possible.-
Methods inherited from class ca.uhn.fhir.parser.BaseParser
compositeChildIterator, containResourcesForEncoding, encodeResourceToString, encodeResourceToWriter, encodeResourceToWriter, extractMetadataListNotNull, findBaseReferences, fixContainedResourceId, getAllBaseReferences, getCompositeElementId, getDontStripVersionsFromReferencesAtPaths, getEncodeForceResourceId, getErrorHandler, getExtensionMetadataKeys, getExtensionUrl, getMetaTagsForEncoding, getPreferTypes, getProfileTagsForEncoding, getServerBaseUrl, getStripVersionsFromReferences, getSuppressNarratives, isChildContained, isEncodeElementsAppliesToChildResourcesOnly, isOmitResourceId, isSummaryMode, isSuppressNarratives, parseResource, parseResource, parseResource, parseResource, parseResource, parseResource, preProcessValues, setDontEncodeElements, setDontStripVersionsFromReferencesAtPaths, setDontStripVersionsFromReferencesAtPaths, setEncodeElements, setEncodeElementsAppliesToChildResourcesOnly, setEncodeForceResourceId, setOmitResourceId, setOverrideResourceIdWithBundleEntryFullUrl, setParserErrorHandler, setPreferTypes, setServerBaseUrl, setStripVersionsFromReferences, setSummaryMode, setSuppressNarratives, shouldAddSubsettedTag, shouldEncodePath, shouldEncodeResource, shouldEncodeResourceId, shouldEncodeResourceMeta, throwExceptionForUnknownChildType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ca.uhn.fhir.parser.IParser
encodeResourceToString, encodeResourceToWriter, getDontStripVersionsFromReferencesAtPaths, getEncodeForceResourceId, getPreferTypes, getStripVersionsFromReferences, isEncodeElementsAppliesToChildResourcesOnly, isOmitResourceId, isSummaryMode, parseResource, parseResource, parseResource, parseResource, parseResource, parseResource, setDontEncodeElements, setDontStripVersionsFromReferencesAtPaths, setDontStripVersionsFromReferencesAtPaths, setEncodeElements, setEncodeElementsAppliesToChildResourcesOnly, setEncodeForceResourceId, setOmitResourceId, setOverrideResourceIdWithBundleEntryFullUrl, setParserErrorHandler, setPreferTypes, setServerBaseUrl, setStripVersionsFromReferences, setSummaryMode, setSuppressNarratives
-
-
-
-
Constructor Detail
-
JsonParser
public JsonParser(FhirContext theContext, IParserErrorHandler theParserErrorHandler)
Do not use this constructor, the recommended way to obtain a new instance of the JSON parser is to invokeFhirContext.newJsonParser().- Parameters:
theParserErrorHandler-
-
-
Method Detail
-
doEncodeResourceToJsonLikeWriter
public void doEncodeResourceToJsonLikeWriter(IBaseResource theResource, JsonLikeWriter theEventWriter, BaseParser.EncodeContext theEncodeContext) throws IOException
- Throws:
IOException
-
doEncodeResourceToWriter
protected void doEncodeResourceToWriter(IBaseResource theResource, Writer theWriter, BaseParser.EncodeContext theEncodeContext) throws IOException
- Specified by:
doEncodeResourceToWriterin classBaseParser- Throws:
IOException
-
doParseResource
public <T extends IBaseResource> T doParseResource(Class<T> theResourceType, Reader theReader)
- Specified by:
doParseResourcein classBaseParser
-
doParseResource
public <T extends IBaseResource> T doParseResource(Class<T> theResourceType, JsonLikeStructure theJsonStructure)
-
encodeResourceToJsonLikeWriter
public void encodeResourceToJsonLikeWriter(IBaseResource theResource, JsonLikeWriter theJsonLikeWriter) throws IOException, DataFormatException
- Specified by:
encodeResourceToJsonLikeWriterin interfaceIJsonLikeParser- Throws:
IOExceptionDataFormatException
-
getEncoding
public EncodingEnum getEncoding()
Description copied from interface:IParserWhich encoding does this parser instance produce?- Specified by:
getEncodingin interfaceIParser
-
parseResource
public <T extends IBaseResource> T parseResource(Class<T> theResourceType, JsonLikeStructure theJsonLikeStructure) throws DataFormatException
Description copied from interface:IJsonLikeParserParses a resource from a JSON-like data structure- Specified by:
parseResourcein interfaceIJsonLikeParser- Parameters:
theResourceType- The resource type to use. This can be used to explicitly specify a class which extends a built-in type (e.g. a custom type extending the default Patient class)theJsonLikeStructure- The JSON-like structure to parse- Returns:
- A parsed resource
- Throws:
DataFormatException- If the resource can not be parsed because the data is not recognized or invalid for any reason
-
parseResource
public IBaseResource parseResource(JsonLikeStructure theJsonLikeStructure) throws DataFormatException
Description copied from interface:IJsonLikeParserParses a resource from a JSON-like data structure- Specified by:
parseResourcein interfaceIJsonLikeParser- Parameters:
theJsonLikeStructure- The JSON-like structure to parse- Returns:
- A parsed resource. Note that the returned object will be an instance of
IResourceorIAnyResourcedepending on the specific FhirContext which created this parser. - Throws:
DataFormatException- If the resource can not be parsed because the data is not recognized or invalid for any reason
-
setPrettyPrint
public IParser setPrettyPrint(boolean thePrettyPrint)
Description copied from interface:IParserSets the "pretty print" flag, meaning that the parser will encode resources with human-readable spacing and newlines between elements instead of condensing output as much as possible.- Specified by:
setPrettyPrintin interfaceIParser- Parameters:
thePrettyPrint- The flag- Returns:
- Returns an instance of
thisparser so that method calls can be chained together
-
newGson
public static com.google.gson.Gson newGson()
-
-