You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.0KB

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. <title>json</title>
  6. <style>
  7. html, body {
  8. margin: 0;
  9. padding: 0;
  10. overflow: hidden;
  11. }
  12. body {
  13. height: 100vh;
  14. width: 100vw;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <script>
  20. var мир = {};
  21. мир.разобрать = function(словарь) {
  22. for (ключ in словарь)
  23. {
  24. var значение = словарь[ключ];
  25. console.debug("ключ/значение", ключ, значение);
  26. if (значение.startsWith("function"))
  27. {
  28. var содержимое = `мир["${ключ}"] = ` + значение;
  29. мир[ключ] = eval(содержимое);
  30. }
  31. else
  32. {
  33. мир[ключ] = значение;
  34. }
  35. }
  36. };
  37. var json1 = {};
  38. json1.вывести = function(аргумент) {
  39. console.debug('выводим аргумент:', аргумент);
  40. }.toString();
  41. json1.пример = function(аргумент) {
  42. мир.вывести("уга");
  43. console.debug("функция-пример исполнена. аргумент:", аргумент);
  44. }.toString();
  45. json2 = JSON.stringify(json1);
  46. console.debug("2", json2);
  47. var json3 = JSON.parse(json2);
  48. console.debug("3", json3);
  49. мир.разобрать(json3);
  50. console.debug("мир.пример", мир.пример);
  51. мир.пример(123);
  52. мир.вывести(77);
  53. </script>
  54. </body>
  55. </html>