
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.EncodeContext
-
-
Field Summary
-
Fields inherited from class ca.uhn.fhir.parser.BaseParser
RESOURCE_CREATED_BY_PARSER
-
-
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 Instance Methods Concrete Methods Modifier and Type Method Description void
doEncodeResourceToJsonLikeWriter(IBaseResource theResource, JsonLikeWriter theEventWriter, BaseParser.EncodeContext theEncodeContext)
protected void
doEncodeResourceToWriter(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)
void
encodeResourceToJsonLikeWriter(IBaseResource theResource, JsonLikeWriter theJsonLikeWriter)
EncodingEnum
getEncoding()
Which encoding does this parser instance produce?IBaseResource
parseResource(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 structureIParser
setPrettyPrint(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:
doEncodeResourceToWriter
in classBaseParser
- Throws:
IOException
-
doParseResource
public <T extends IBaseResource> T doParseResource(Class<T> theResourceType, Reader theReader)
- Specified by:
doParseResource
in 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:
encodeResourceToJsonLikeWriter
in interfaceIJsonLikeParser
- Throws:
IOException
DataFormatException
-
getEncoding
public EncodingEnum getEncoding()
Description copied from interface:IParser
Which encoding does this parser instance produce?- Specified by:
getEncoding
in interfaceIParser
-
parseResource
public <T extends IBaseResource> T parseResource(Class<T> theResourceType, JsonLikeStructure theJsonLikeStructure) throws DataFormatException
Description copied from interface:IJsonLikeParser
Parses a resource from a JSON-like data structure- Specified by:
parseResource
in 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:IJsonLikeParser
Parses a resource from a JSON-like data structure- Specified by:
parseResource
in interfaceIJsonLikeParser
- Parameters:
theJsonLikeStructure
- The JSON-like structure to parse- Returns:
- A parsed resource. Note that the returned object will be an instance of
IResource
orIAnyResource
depending 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:IParser
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.- Specified by:
setPrettyPrint
in interfaceIParser
- Parameters:
thePrettyPrint
- The flag- Returns:
- Returns an instance of
this
parser so that method calls can be chained together
-
-