compiler: support System.Json.* syscalls

This commit is contained in:
Evgenii Stratonikov 2020-06-15 11:08:23 +03:00
parent 6339efac11
commit becb8a0f72
2 changed files with 32 additions and 0 deletions

28
pkg/interop/json/json.go Normal file
View file

@ -0,0 +1,28 @@
/*
Package json provides various JSON serialization/deserialization routines.
*/
package json
// ToJSON serializes value to json. It uses `System.Json.Serialize` syscall.
// Serialization format is the following:
// []byte -> base64 string
// bool -> json boolean
// nil -> Null
// string -> base64 encoded sequence of underlying bytes
// (u)int* -> integer, only value in -2^53..2^53 are allowed
// []interface{} -> json array
// map[type1]type2 -> json object with string keys marshaled as strings (not base64).
func ToJSON(item interface{}) []byte {
return nil
}
// FromJSON deserializes value from json. It uses `System.Json.Deserialize` syscall.
// It performs deserialization as follows:
// strings -> []byte (string) from base64
// integers -> (u)int* types
// null -> interface{}(nil)
// arrays -> []interface{}
// maps -> map[string]interface{}
func FromJSON(data []byte) interface{} {
return nil
}