If whitelist.empty
, all types are accepted.
import json
class MyClass
serialize
end
var json_string = """
{"__class": "MyClass"}
"""
var deserializer = new JsonDeserializer(json_string)
var obj = deserializer.deserialize
assert deserializer.errors.is_empty
assert obj isa MyClass
deserializer = new JsonDeserializer(json_string)
deserializer.whitelist.add "Array[String]"
deserializer.whitelist.add "AnotherAcceptedClass"
obj = deserializer.deserialize
assert deserializer.errors.length == 1
assert obj == null
# Accepted parameterized classes to deserialize
#
# If `whitelist.empty`, all types are accepted.
#
# ~~~
# import json
#
# class MyClass
# serialize
# end
#
# var json_string = """
# {"__class": "MyClass"}
# """
#
# var deserializer = new JsonDeserializer(json_string)
# var obj = deserializer.deserialize
# assert deserializer.errors.is_empty
# assert obj isa MyClass
#
# deserializer = new JsonDeserializer(json_string)
# deserializer.whitelist.add "Array[String]"
# deserializer.whitelist.add "AnotherAcceptedClass"
# obj = deserializer.deserialize
# assert deserializer.errors.length == 1
# assert obj == null
# ~~~
var whitelist = new Array[Text]
lib/serialization/safe.nit:27,2--54,32