public class JSONToToken extends Converter
Depending on the top level structure found in the JSON string, it produces either a RecordToken or an ArrayToken on its output port. Nested structures in the JSON data will translate to correspondingly nested structures in the Token.
The JSONObject parser processes values as follows: Delimited values are always parsed as a String. Values that are not delimited are tested in the order noted below. The first test that succeeds determines the type.
If non of the above apply, the value is interpreted as a String.
Note that JSON allows array elements to have different types, whereas the
ArrayToken does not. Conversion of such mixed array will result
in an ArrayToken of which the types of all elements are cast to
the least upper bound of the entire collection.
http://www.json.org/ - a description of the JSON format.
TokenToJSONEntity.ContainedObjectsIteratorinput, output_typesValid_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKSCOMPLETED, NOT_READY, STOP_ITERATING| Constructor and Description |
|---|
JSONToToken(CompositeEntity container,
java.lang.String name)
Construct a JSONToToken actor with the given container and name.
|
| Modifier and Type | Method and Description |
|---|---|
protected java.util.Set<Inequality> |
_defaultTypeConstraints()
Do not establish the usual default type constraints.
|
void |
fire()
Read a JSON-formatted String of name/value pairs from the input
and produce a corresponding array or record on the output.
|
static Token |
parseJSON(java.lang.String input)
Parse the input string and return a token representation of the data.
|
boolean |
prefire()
Return false if the input port has no token, otherwise return
what the superclass returns (presumably true).
|
_containedTypeConstraints, _customTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspaceequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortListisFireFunctional, isStrict, iterate, postfire, stop, stopFire, terminateaddInitializable, initialize, preinitialize, removeInitializable, wrapupdescription, getContainer, getDisplayName, getFullName, getName, getName, setNamegetDerivedLevel, getDerivedList, propagateValuepublic JSONToToken(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container - The container.name - The name of this actor.IllegalActionException - If the actor cannot be contained
by the proposed container.NameDuplicationException - If the container already has an
actor with this name.public void fire() throws IllegalActionException
fire in interface Executablefire in class AtomicActor<TypedIOPort>IllegalActionException - If the input string does not
contain properly formatted JSON.public static Token parseJSON(java.lang.String input) throws IllegalActionException
input - An input string that contains JSON-formatted dataIllegalActionException - If the given input string cannot be parsed.public boolean prefire() throws IllegalActionException
prefire in interface Executableprefire in class AtomicActor<TypedIOPort>IllegalActionException - If there is no director.protected java.util.Set<Inequality> _defaultTypeConstraints()
_defaultTypeConstraints in class TypedAtomicActor