@ConfigurableContext public class JsonParser extends ReaderParser implements JsonMetaProvider, JsonCommon
This parser handles all valid JSON syntax. In addition, when strict mode is disable, the parser also handles the following:
/*
and //
) are ignored.
"aaa" + 'bbb'
).
Also handles negative, decimal, hexadecimal, octal, and double numbers, including exponential notation.
This parser handles the following input, and automatically returns the corresponding Java class.
OMaps
.
Note: If a _type ='xxx'
attribute is specified on the object, then an
attempt is made to convert the object to an instance of the specified Java bean class.
See the PropertyStore
for more information about parsing
beans from JSON.
OLists
.
Strings
.
Integers
, Longs
, Floats
, or Doubles
depending on
whether the number is decimal, and the size of the number.
Booleans
.
Input can be any of the following:
OMap
or an instance of a Java bean if a OList
.
Number
(either Integer
, Long
, Float
,
or Double
).
Boolean
.
String
.
String
.
String
.
TIP: If you know you're parsing a JSON object or array, it can be easier to parse it using the
OMap(CharSequence)
or OList(CharSequence)
constructors instead of using this class.
The end result should be the same.
Modifier and Type | Class and Description |
---|---|
static class |
JsonParser.Strict
Default parser, strict mode.
|
Parser.Null
Modifier and Type | Field and Description |
---|---|
static JsonParser |
DEFAULT
Default parser, all default settings.
|
static JsonParser |
DEFAULT_STRICT
Default parser, all default settings.
|
static String |
JSON_validateEnd
Configuration property: Validate end.
|
RPARSER_fileCharset, RPARSER_streamCharset
PARSER_autoCloseStreams, PARSER_debugOutputLines, PARSER_listener, PARSER_strict, PARSER_trimStrings, PARSER_unbuffered
BEAN_annotations, BEAN_beanClassVisibility, BEAN_beanConstructorVisibility, BEAN_beanDictionary, BEAN_beanDictionary_add, BEAN_beanDictionary_remove, BEAN_beanFieldVisibility, BEAN_beanFilters, BEAN_beanFilters_add, BEAN_beanFilters_remove, BEAN_beanMapPutReturnsOldValue, BEAN_beanMethodVisibility, BEAN_beansRequireDefaultConstructor, BEAN_beansRequireSerializable, BEAN_beansRequireSettersForGetters, BEAN_beansRequireSomeProperties, BEAN_bpi, BEAN_bpro, BEAN_bpwo, BEAN_bpx, BEAN_examples, BEAN_excludeProperties, BEAN_fluentSetters, BEAN_ignoreInvocationExceptionsOnGetters, BEAN_ignoreInvocationExceptionsOnSetters, BEAN_ignorePropertiesWithoutSetters, BEAN_ignoreTransientFields, BEAN_ignoreUnknownBeanProperties, BEAN_ignoreUnknownNullBeanProperties, BEAN_implClasses, BEAN_includeProperties, BEAN_notBeanClasses, BEAN_notBeanClasses_add, BEAN_notBeanClasses_remove, BEAN_notBeanPackages, BEAN_notBeanPackages_add, BEAN_notBeanPackages_remove, BEAN_pojoSwaps, BEAN_pojoSwaps_add, BEAN_pojoSwaps_remove, BEAN_propertyNamer, BEAN_sortProperties, BEAN_swaps, BEAN_swaps_add, BEAN_swaps_remove, BEAN_typePropertyName, BEAN_useEnumNames, BEAN_useInterfaceProxies, BEAN_useJavaBeanIntrospector, DEFAULT_SORTED
CONTEXT_debug, CONTEXT_locale, CONTEXT_mediaType, CONTEXT_timeZone
Constructor and Description |
---|
JsonParser(PropertyStore ps)
Constructor.
|
JsonParser(PropertyStore ps,
String... consumes)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
JsonParserBuilder |
builder()
Creates a builder from this context object.
|
static JsonParserBuilder |
create()
Instantiates a new clean-slate
JsonParserBuilder object. |
JsonParserSession |
createSession()
Create a new bean session based on the properties defined on this context.
|
JsonParserSession |
createSession(ParserSessionArgs args)
Create the session object that will be passed in to the parse method.
|
JsonBeanPropertyMeta |
getJsonBeanPropertyMeta(BeanPropertyMeta bpm)
Returns the language-specific metadata on the specified bean property.
|
JsonClassMeta |
getJsonClassMeta(ClassMeta<?> cm)
Returns the language-specific metadata on the specified class.
|
protected boolean |
isValidateEnd()
Validate end.
|
OMap |
toMap()
Returns the properties defined on this bean context as a simple map for debugging purposes.
|
getFileCharset, getStreamCharset, isReaderParser
canHandle, createDefaultSessionArgs, getDebugOutputLines, getListener, getMediaTypes, getPrimaryMediaType, isAutoCloseStreams, isStrict, isTrimStrings, isUnbuffered, parse, parse, parse, parse, parse, parse, parseArgs, parseIntoCollection, parseIntoMap
_class, createBeanSession, createBeanSession, createDefaultBeanSessionArgs, createSession, createSession, dumpCacheStats, getAnnotations, getAnnotations, getAnnotations, getAnnotations, getAnnotations, getAnnotations, getAnnotations, getAnnotations, getBeanClassVisibility, getBeanConstructorVisibility, getBeanDictionaryClasses, getBeanFieldVisibility, getBeanFilters, getBeanMeta, getBeanMethodVisibility, getBeanRegistry, getBeanToStringSerializer, getBeanTypePropertyName, getBpi, getBpi, getBpro, getBpro, getBpwo, getBpwo, getBpx, getBpx, getClassMeta, getClassMeta, getClassMetaForObject, getDeclaredAnnotations, getDeclaredAnnotations, getExamples, getImplClassConstructor, getImplClasses, getLastAnnotation, getLastAnnotation, getLastAnnotation, getLastAnnotation, getLastAnnotation, getLastAnnotation, getLastAnnotation, getLastAnnotation, getLastDeclaredAnnotation, getLastDeclaredAnnotation, getNotBeanClasses, getNotBeanPackagesNames, getNotBeanPackagesPrefixes, getPropertyNamer, getSwaps, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasSameCache, isBean, isBeanMapPutReturnsOldValue, isBeansRequireDefaultConstructor, isBeansRequireSerializable, isBeansRequireSettersForGetters, isBeansRequireSomeProperties, isFluentSetters, isIgnoreInvocationExceptionsOnGetters, isIgnoreInvocationExceptionsOnSetters, isIgnorePropertiesWithoutSetters, isIgnoreTransientFields, isIgnoreUnknownBeanProperties, isIgnoreUnknownNullBeanProperties, isNotABean, isSortProperties, isUseEnumNames, isUseInterfaceProxies, isUseJavaBeanIntrospector, object, resolveClassMeta, string
equals, getArrayProperty, getArrayProperty, getBooleanProperty, getCdlProperty, getClassArrayProperty, getClassArrayProperty, getClassArrayProperty, getClassListProperty, getClassListProperty, getClassMapProperty, getClassMapProperty, getClassProperty, getClassSetProperty, getClassSetProperty, getDefaultLocale, getDefaultMediaType, getDefaultTimeZone, getInstanceArrayProperty, getInstanceArrayProperty, getInstanceArrayProperty, getInstanceProperty, getInstanceProperty, getInstanceProperty, getIntegerProperty, getListProperty, getListProperty, getLongProperty, getMapProperty, getProperty, getProperty, getPropertyKeys, getPropertyStore, getSetProperty, getSetProperty, getStringProperty, getStringPropertyWithNone, hashCode, identityCode, isDebug, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getAnnotations, getAnnotations, getAnnotations, getAnnotations, getDeclaredAnnotations
public static final String JSON_validateEnd
JSON_validateEnd
If
public static final JsonParser DEFAULT
public static final JsonParser DEFAULT_STRICT
public JsonParser(PropertyStore ps)
ps
- The property store containing all the settings for this object.public JsonParser(PropertyStore ps, String... consumes)
ps
- The property store containing all the settings for this object.consumes
- The list of media types that this parser consumes (e.g. public JsonParserBuilder builder()
Context
Builders are used to define new contexts (e.g. serializers, parsers) based on existing configurations.
public static JsonParserBuilder create()
JsonParserBuilder
object.
This is equivalent to simply calling
.
Note that this method creates a builder initialized to all default settings, whereas builder()
copies
the settings of the object called on.
JsonParserBuilder
object.public JsonParserSession createSession()
BeanContext
Use this method for creating sessions if you don't need to override any properties or locale/timezone currently set on this context.
createSession
in class Parser
public JsonParserSession createSession(ParserSessionArgs args)
Parser
It's up to implementers to decide what the session object looks like, although typically it's going to be a
subclass of ParserSession
.
createSession
in class Parser
args
- Runtime arguments.public JsonClassMeta getJsonClassMeta(ClassMeta<?> cm)
JsonMetaProvider
getJsonClassMeta
in interface JsonMetaProvider
cm
- The class to return the metadata on.public JsonBeanPropertyMeta getJsonBeanPropertyMeta(BeanPropertyMeta bpm)
JsonMetaProvider
getJsonBeanPropertyMeta
in interface JsonMetaProvider
bpm
- The bean property to return the metadata on.protected final boolean isValidateEnd()
JSON_validateEnd
public OMap toMap()
Context
toMap
in class ReaderParser
Copyright © 2016–2020 The Apache Software Foundation. All rights reserved.