The JSON macro can parse a JSON string. It exposes properties to query the resulting object and methods to modify it.

Syntax

Smartsite SXML CopyCode image Copy Code
<se:json />

Parameters

Name Data Type Properties Description
Id String MustBeAttribute
Trim
Sets the Id of the macro. Macros with Ids set can be accessed using Viper by referring to page.[id].[methodname()].
InputData Any - Sets the input data (Json).
Source String Default
Sets the source of the JSON object.
UseXmlDates Boolean - Determines how the Json object serializes dates. If true, an Xml DateTime literal is used, otherwise a JavaScript new Date constructor is used.

Shared Parameters

Name Data Type Properties Description
Access String - Friendly name of the minimum access type level required by the site visitor to execute this macro.
AccessDenied String RawData
Sets the value that is returned when the site visitor has insufficient access.
AIM Enum - Sets the AIM scanning mode of the macro.
Enum values:
  • NotSet
    Not set.
  • Off
    No AIM scanning.
  • External
    Output XML scanning.
  • Internal
    Internal scanning, implemented by AIM-aware macros.
  • Autonomous
    Relations are to be linked to the current source item, instead of the rendered page.
  • SoftLink
    Should generate soft links (in combination with External flag).
  • InternalAutonomous
    Internal scanning, combined with the Autonomous setting.
  • ExternalAutonomous
    External scanning, combined with the Autonomous setting.
  • ExternalAutonomousSoftLink
    External scanning, combined with the Autonomous and softLink settings.
  • ExternalSoftLink
    External scanning, combined with the Softlink setting.
Condition String MustBeAttribute
ExpressionSyntax
XmlDecode
Sets the Viper expression to evaluate before actually executing the macro.
If the expression returns false, the execution of the module and its child modules is skipped.
Default String RawData
Sets the default value that will be returned when the execution would otherwise return an empty string.
Error String RawData
Sets the value to return in case on error occurs during execution.
The Viper expressions this.error(), this.error(full) and this.error(type) are available in this context.
Id String MustBeAttribute
Trim
Sets the Id of the macro. Macros with Ids set can be accessed using Viper by referring to page.[id].[methodname()].
LocalId String MustBeAttribute
Trim
Sets the local id of the macro in the current buffer scope.
Rem String RawData
NoCache
Trim
Sets the remarks. Remarks have no effect on the actual execution of the module.
They only improve the readability of the code.
ResultFormat String RawData
Sets the resultformat.
ResultType Enum - Sets the type of the result.
Enum values:
  • Undefined
    Not set
  • None
    No result
  • String
    Default type
  • Object
    Generic object
  • Binary
    Binary data
  • Boolean
    Boolean
  • DataTable
    DataTable
  • DateTime
    Date/time
  • Float
    Floating point numeric data
  • Integer
    Integer
  • Locator
    Extended Uri
  • Xml
    Xml Data
Save Collection - Sets the buffer names.
Status Enum - Gets a value indicating the ModuleStatus of this module.
Enum values:
  • Unknown
    Unknown
  • BeginInitialize
    Initializing the module
  • EndInitialize
    Module has fully initialized
  • BeginSetProperties
    Properties are about to be set
  • EndSetProperties
    Properties have been set
  • BeginExecute
    Execution starts
  • BeginFormatData
    Starting data formatting.
  • EndFormatData
    Ended data formatting.
  • BeginFormatResult
    Before formating result.
  • EndFormatResult
    After formatting result
  • EndExecute
    Execution is ending
  • StartLoseScope
    Execution has completed
  • EndLoseScope
    Module is about to unload
  • Error
    Module is in an error state
Timeout Float - Sets the timeout in seconds. In the overriden Execute() method, you can call CheckTimeout() to check whether execution has timed out.
Trim Enum MustBeAttribute
Gets a value indicating how the whitespace is trimmed.
Whitespace Enum MustBeAttribute
Gets a value indicating whether to preserve whitespace.
Enum values:
  • Inherit
    Inherit from parent.
  • Preserve
    Keep all whitespace.
  • Remove
    Remove all whitespace.
  • Normalize
    Convert all whitespace to single spaces.
  • SimpleFormat
    Convert all whitespace to single spaces, but keep single line breaks.

Local Viper Methods

Viper Extension Description
This.Add Add a named property on the JSON object. Fails if the object already contains a property by the same name.
This.AddNull Add a null property on the JSON object. Fails if the object already contains a property by the same name.
This.AddValue Add a named property on the JSON object. Fails if the object already contains a property by the same name.
This.ClearForcedResult   Sets the result of the macro.
used to override the normal handling of the result creation.
This.Exists Indicates whether the given property exists in the JSON object.
This.Get Gets the string representation of the JSON object.
This.GetByPosition Gets the string representation of the JSON object at the given position.
This.GetEncoded Gets the string representation of the JSON object and encodes ampersands for use on the client.
This.GetEncodedValue Gets the typed value of a named property from the JSON object. If the typed value is a string ampersands will be encoded for use on the client.
This.GetForcedResult   Gets the forced result of the macro, set by overriding the normal rendering using SetForcedResult().
This.GetJson Gets the json object for later use.
This.GetJsonTypeName Gets the type of the JSON object.
This.GetJsonTypeName Gets the type of a named property from the JSON object.
This.GetNameByPosition Gets the property name by position.
This.GetValue Gets the typed value of a named property from the JSON object.
This.GetValueByPosition Gets the typed property by position.
This.Length Gets the number of properties on the outer JSON object.
This.Load Loads the given string into the JSON object. Destroys the existing object.
This.MimeType Returns the MIME type for a request or response that uses JSON.
This.Remove Removes a property from the JSON object.
This.RenderTime Returns the render time of the macro in milliseconds.
This.Set Sets a named property on the JSON object.
This.SetForcedResult   Sets the result of the macro.
used to override the normal handling of the result creation.
This.SetNull Sets a named property on the JSON object to Null.
This.SetValue Sets a named property on the JSON object.

Shared Local Viper Methods

Viper Extension Description
This.AIM.Relations Gets a list of all outgoing AIM relations created by the macro.
This.Buffer.Exists   Checks whether a local buffer exists.
This.Buffer.Get   Gets a local buffer.
This.Buffer.Set   Sets a local buffer.
This.Error.InnerException.Message   Returns the text message of the inner exception of the exception that has occurred.
This.Error.InnerException.SmartsiteCode   Returns Smartsite error code of the inner exception of the exception that has occurred.
This.Error.InnerException.Throw   Makes Smartsite throw the inner exception.
This.Error.InnerException.ToString   Returns the full information of the inner exception of the exception that has occurred, including the stack trace.
This.Error.InnerException.Type   Returns the full Type name of the inner exception of the exception that has occurred.
This.Error.Message   Returns the text message of the exception that has occurred.
This.Error.SmartsiteCode   Returns the Smartsite Error code of the exception that has occurred.
This.Error.Throw   Makes Smartsite throw the current exception.
This.Error.ToString   Returns the full information of the exception that has occurred, including the stack trace.
This.Error.Type   Returns the full Type name of the exception that has occurred.
This.FindExtension   Finds an extension macro.
This.GetParameter Gets the value of the given parameter/property.
This.ParameterExists Checks whether the given parameter/property is set.
This.Result   Returns the result of the macro.
Typically used in the ResultFormat property, to format, convert or encode the result.
This.SXMLPath   Gets the path to the macro in the current execution stack.

Expand image Remarks

Expand image Examples

SXML