Files
cours-420-301-ah/json-gnome-exemple.ipynb
T
2024-01-26 18:54:03 -05:00

71 lines
1.6 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 27,
"id": "979a911a",
"metadata": {},
"outputs": [],
"source": [
"class Person {\n",
"\n",
" constructor(name, age){\n",
" this.name = name;\n",
" this.age = age;\n",
" }\n",
" \n",
" isMajor(){\n",
" return this.age > 18;\n",
" }\n",
" \n",
" toJSON(){\n",
" return {\n",
" type: \"Person\",\n",
" age: this.age,\n",
" name: this.name,\n",
" }\n",
" }\n",
" \n",
"}\n",
"\n",
"function deserializeObject(object){\n",
" if(object.type === \"Person\"){\n",
" return new Person(object.name, object.age);\n",
" }\n",
" if(object.type === \"Gnome\"){\n",
" return new Gnome(object.name, object.age);\n",
" }\n",
" if(object.type === \"Luttin\"){\n",
" return new Luttin(object.name, object.age);\n",
" }\n",
"}\n",
"\n",
"function deserializeArray(lst){\n",
" const ret = [];\n",
" for(const e of lst){\n",
" ret.push(deserializeObject(e));\n",
" }\n",
" return ret;\n",
"}"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Deno",
"language": "typescript",
"name": "deno"
},
"language_info": {
"file_extension": ".ts",
"mimetype": "text/x.typescript",
"name": "typescript",
"nb_converter": "script",
"pygments_lexer": "typescript",
"version": "5.3.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}