return object
end
- redef fun deserialize do return convert_object(root)
+ redef fun deserialize
+ do
+ errors.clear
+ return convert_object(root)
+ end
end
redef class Serializable
v.stream.write id.to_s
v.stream.write """, "__class": """"
v.stream.write class_name
- v.stream.write """", "__length": """
- v.stream.write length.to_s
- v.stream.write """, "__items": """
+ v.stream.write """", "__items": """
end
serialize_to_pure_json v
v.notify_of_creation self
init
- var length = v.deserialize_attribute("__length").as(Int)
var arr = v.path.last["__items"].as(SequenceRead[nullable Object])
- for i in length.times do
- var obj = v.convert_object(arr[i])
+ for o in arr do
+ var obj = v.convert_object(o)
self.add obj
end
end
end
end
-redef class Array[E]
- redef fun serialize_to_json(v)
- do
- if v.plain_json or class_name == "Array[nullable Serializable]" then
- # Using class_name to get the exact type,
- # we do not want Array[Int] or anything else here.
-
- serialize_to_pure_json v
- else super
- end
-end
-
redef class Map[K, V]
redef fun serialize_to_json(v)
do