Functions
-
lang.value
clone |
I
Returns a clone of |
cloneReadOnly |
I
Returns a clone of |
cloneWithType |
I
Constructs a value with a specified type by cloning another value. |
fromJsonDecimalString |
I
Parses a string in JSON format and returns the value that it represents. |
fromJsonFloatString |
I
Parses a string in JSON format and returns the value that it represents. |
fromJsonString |
I
Parses a string in JSON format and returns the the value that it represents. |
fromJsonStringWithType |
I
Converts a string in JSON format to a user-specified type. |
fromJsonWithType |
I
Converts a value of type json to a user-specified type. |
isReadOnly |
I
Tests whether |
mergeJson |
I
Merges two json values. |
toJson |
I
Converts a value of type |
toJsonString |
I
Returns the string that represents |
toString |
I
Performs a minimal conversion of a value to a string. |
Returns a clone of v
.
A clone is a deep copy that does not copy immutable subtrees.
A clone can therefore safely be used concurrently with the original.
It corresponds to the Clone(v) operation,
defined in the Ballerina Language Specification.
Parameters
- v null
-
source value
-
Return Type
(null) clone of
v
Returns a clone of v
that is read-only, i.e. immutable.
It corresponds to the ImmutableClone(v) operation,
defined in the Ballerina Language Specification.
Parameters
- v null
-
source value
-
Return Type
(null) immutable clone of
v
Constructs a value with a specified type by cloning another value.
Parameters
- v anydata
-
the value to be cloned
- t typedesc
-
the type for the cloned to be constructed
-
Return Type
(null | error) a new value that belongs to
t
, or an error if this cannot be doneWhen
v
is a structural value, the inherent type of the value to be constructed comes fromt
. Whent
is a union, it must be possible to determine which member of the union to use for the inherent type by following the same rules that are used by list constructor expressions and mapping constructor expressions with the contextually expected type. If not, then an error is returned. TheconstructFrom
operation is recursively applied to each member ofv
using the type descriptor that the inherent type requires for that member.Like the Clone abstract operation, this does a deep copy, but differs in the following respects:
- the inherent type of any structural values constructed comes from the specified type descriptor rather than the value being constructed
- the read-only bit of values and fields comes from the specified type descriptor
- the graph structure of
v
is not preserved; the result will always be a tree; an error will be returned ifv
has cycles - immutable structural values are copied rather being returned as is; all structural values in the result will be mutable, except for error values (which are always immutable)
- numeric values can be converted using the NumericConvert abstract operation
- if a record type descriptor specifies default values, these will be used to supply any missing members
Parses a string in JSON format and returns the value that it represents. All numbers in the JSON will be represented as decimal values. Returns an error if the string cannot be parsed.
Parameters
- str string
-
string representation of json
-
Return Type
(json | error) str
parsed to json or error
Parses a string in JSON format and returns the value that it represents. All numbers in the JSON will be represented as float values. Returns an error if the string cannot be parsed.
Parameters
- str string
-
string representation of json
-
Return Type
(json | error) str
parsed to json or error
Parses a string in JSON format and returns the the value that it represents. All integer numbers in the JSON will be represented as integer values. All decimal numbers except -0.0 in the JSON will be represent as decimal values. -0.0 in the JSON will be represent as float value. Returns an error if the string cannot be parsed.
Parameters
- str string
-
string representation of json
-
Return Type
(json | error) str
parsed to json or error
Converts a string in JSON format to a user-specified type.
This is a combination of fromJsonString
followed by
fromJsonWithType
.
Parameters
- str string
-
string in JSON format
- t typedesc
-
type to convert to
-
Return Type
(t | error) value belonging to
t
, or error if this cannot be done
Converts a value of type json to a user-specified type.
This works the same as cloneWithType
,
except that it also does the inverse of the conversions done by toJson
.
Parameters
- v json
-
json value
- t typedesc
-
type to convert to
-
Return Type
(t | error) value belonging to
t
, or error if this cannot be done
Tests whether v
is read-only, i.e. immutable
Returns true if read-only, false otherwise.
Parameters
- v anydata
-
source value
-
Return Type
(boolean) true if read-only, false otherwise
Merges two json values.
Parameters
- j1 json
-
json value
- j2 json
-
json value
-
Return Type
(json | error) the merge of
j1
withj2
or an error if the merge failsThe merge of
j1
withj2
is defined as follows:- if
j1
is()
, then the result isj2
- if
j2
is()
, then the result isj1
- if
j1
is a mapping andj2
is a mapping, then for each entry [k, j] in j2, setj1[k]
to the merge ofj1[k]
withj
- if
j1[k]
is undefined, then setj1[k]
toj
- if any merge fails, then the merge of
j1
withj2
fails - otherwise, the result is
j1
.
- if
- otherwise, the merge fails
If the merge fails, then
j1
is unchanged.
- if
Converts a value of type anydata
to json
.
This does a deep copy of v
converting values that do
not belong to json into values that do.
A value of type xml
is converted into a string as if
by the toString
function.
A value of type table
is converted into a list of
mappings one for each row.
The inherent type of arrays in the return value will be
json[]
and of mappings will be map<json>
.
A new copy is made of all structural values, including
immutable values.
Parameters
- v anydata
-
anydata value
-
Return Type
(json) representation of
v
as value of type json This panics ifv
has cycles.
Returns the string that represents v
in JSON format.
v
is first converted to json
as if by the toJson
function.
Parameters
- v anydata
-
anydata value
-
Return Type
(string) string representation of json
Performs a minimal conversion of a value to a string. The conversion is minimal in particular in the sense that the conversion applied to a value that is already a string does nothing.
Parameters
- v any | error
-
the value to be converted to a string
-
Return Type
(string) a string resulting from the conversion
The result of
toString(v)
is as follows:- if
v
is a string, then returnsv
- if
v
is()
, then returns an empty string - if
v
is boolean, then the stringtrue
orfalse
- if
v
is an int, then returnv
represented as a decimal string - if
v
is a float or decimal, then returnv
represented as a decimal string, with a decimal point only if necessary, but without any suffix indicating the type ofv
; returnNaN
,Infinity
for positive infinity, and-Infinity
for negative infinity - if
v
is a list, then returns the results toString on each member of the list separated by a space character - if
v
is a map, then returns key=value for each member separated by a space character - if
v
is xml, then returnsv
in XML format (as if it occurred within an XML element) - if
v
is table, TBD - if
v
is an error, then a string consisting of the following in order- the string
error
- a space character
- the reason string
- if the detail record is non-empty
- a space character
- the result of calling toString on the detail record
- the string
- if
v
is an object, then- if
v
provides atoString
method with a string return type and no required methods, then the result of calling that method onv
- otherwise,
object
followed by some implementation-dependent string
- if
- if
v
is any other behavioral type, then the identifier for the behavioral type (function
,future
,service
,typedesc
orhandle
) followed by some implementation-dependent string
Note that
toString
may produce the same string for two Ballerina values that are not equal (in the sense of the==
operator).- if