You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Adds elements to the current document based on the current path.

Syntax

// Adding a member to the current object
SRP_JsonX(MemberName, Value, Hint)

// Adding a value to the current array
SRP_JsonX(Value, Hint)

// Starting a new object or array in the current object
SRP_JsonX(MemberName, Opener)

// Starting a new object or array in the current array
SRP_JsonX(Opener)

// If closing an object or array
SRP_JsonX(Closer)

Returns

1 if successful, 0 if there was an error.

Parameters

ParameterDescription
MemberNameThe name of the new object member.
ValueThe new value. Omit to pass null.
HintForces the value into a json type. Can be "Bool", "Null", or "String". Optional. 
OpenerStarts a new object or array. Can be "{" or "[".
CloserCloses the current element. Can be "}" or "]".

Remarks

SRP_JsonX is a dynamic routine that interprets its parameter based on the current state of the document, and calling it can even change the state. The actual parameter names are strange, so the SRP Editor tooltip won't always be of use. There are three general use cases:

Use CaseSyntaxBehavior
Adding Member to Object
SRP_JsonX(MemberName, Value, Hint)
Adds or replaces the member of the current object with the given value. If you omit the value, then you set the member to null. 
Adding Value to Array
SRP_JsonX(Value, Hint)
Adds the given value to the end of the current array. If you omit the value, then you add null to the end of the array.
Starting Object/Array in Object
SRP_JsonX(MemberName, Opener)
Adds or replaces the member of the current object with an empty object or array. The opener must be "{" to start a new object or "[" to start a new array. The new object/array becomes the current element.
Starting Object/Array in Array
SRP_JsonX(Opener)
Adds an empty object or array to the end of the current array. The opener must be "{" to start a new object or "[" to start a new array. The new object/array becomes the current element.
Closing
SRP_JsonX(Closer)
Passing "}" or "]" closes the current object or array and makes it's parent the new current element.

The Value parameter will be smartly interpreted by the routine unless a Hint is specified. OI numbers are converted into json numbers. You can also pass json as a value, and this routine will parse the json and set it as the current element's value.

The Hint parameter can be used to force the value into a specific json type. Use "Bool" to force the value to be true or false. Use "Null" to ignore the given value and just use null as the value. Use "String" to force the value into a string, which is useful when you want an OI number to be surrounded by quotes in the json itself.

If you want to make simple changes to a document without affecting the state of that document, use SRP_JsonX_Set instead.

Examples

$insert SRPJSONX

SRP_JsonX_Begin('MyDocument', '{')
    SRP_JsonX('employees', '[')
        SRP_JsonX('{')
            SRP_JsonX('firstname', 'John')
            SRP_JsonX('lastname', 'Doe')
            SRP_JsonX('age', 21)
        SRP_JsonX('}')
        SRP_JsonX('{')
            SRP_JsonX('firstname', 'Anna')
            SRP_JsonX('lastname', 'Smith')
            SRP_JsonX('age', 32)
        SRP_JsonX('}')
        SRP_JsonX('{"firstname":"Peter", "lastname":"Jones", "age":43}')
    SRP_JsonX(']')
    SRP_JsonX('count', 4)
    SRP_JsonX('active', 1, 'Bool')
    SRP_JsonX('alwaysnull')
    SRP_JsonX('alwaysstring', 4.321, 'String')
Json = SRP_JsonX_End('Pretty')
  • No labels