JSON Serialization#
Both the TCP and the HTTP mapping use a json serialization for objects send over the VAB. In the following, this json serialization is explained.
Requirements#
There are multiple requirements on the JSON serialization:
Preserve type information, since JSON only knows a small set of types
Be compatible to the JSON serialization defined in Details of the Asset Administration Shell
Be compatible to the C#-SDK since it is not using the VAB
Type Representation#
The following types are taken as is from the JSON type scheme:
string
number (integer or double)
object (i.e. map)
boolean
null Additionally, these types are introduced:
ordered lists
functions
Functions#
Functions are most commonly not serializable. Exception of this are Java functions, that can be represented by their byte code. However, there still needs to be an indication that a value is representing a function. This is done by passing this information in the _basyxFunctionType key. The allowed values are:
lambda
operation