1 00:00:00,000 --> 00:00:03,459 Quizás no es solo la voz, pero bueno, para las tonterías que decimos es lo suficientemente. 2 00:00:08,140 --> 00:00:15,060 Entonces, los JSON es otro formato de archivos de texto que admite metainformación. 3 00:00:15,679 --> 00:00:21,260 Lo que pasa es que la metainformación en los XML era una estructura jerárquica de nodos, 4 00:00:21,260 --> 00:00:31,039 como sabemos de memoria, y la metainformación en los JSON está adaptada a la programación orientada a objetos. 5 00:00:31,039 --> 00:00:33,579 entonces, como recordatorio 6 00:00:33,579 --> 00:00:35,200 por si alguien no tiene muy claro en la cabeza 7 00:00:35,200 --> 00:00:36,079 lo que es un JSON 8 00:00:36,079 --> 00:00:38,920 ¿qué estructura tiene un JSON? 9 00:00:39,039 --> 00:00:39,979 no tiene comentarios 10 00:00:39,979 --> 00:00:42,659 el JSON está más orientado 11 00:00:42,659 --> 00:00:45,240 a que lo parsen máquinas y aplicaciones 12 00:00:45,240 --> 00:00:47,000 directamente, el XML 13 00:00:47,000 --> 00:00:49,100 en su momento también estaba orientado 14 00:00:49,100 --> 00:00:51,100 a que uno lo viera físicamente 15 00:00:51,100 --> 00:00:53,259 viera su información, le diera incluso 16 00:00:53,259 --> 00:00:55,240 un estilo y lo pudiera ver en un 17 00:00:55,240 --> 00:00:57,020 navegador web 18 00:00:57,020 --> 00:00:59,100 el JSON está esencialmente orientado 19 00:00:59,100 --> 00:01:00,579 a que las máquinas lo parsen 20 00:01:00,579 --> 00:01:02,240 para sacar su información 21 00:01:02,240 --> 00:01:04,379 ¿vale? por eso no tiene 22 00:01:04,379 --> 00:01:05,219 ni comentarios 23 00:01:05,219 --> 00:01:07,780 ¿puedo pasar? 24 00:01:08,620 --> 00:01:10,019 pero si vengo de esta clase 25 00:01:10,019 --> 00:01:11,060 yo ya he estado aquí 26 00:01:11,060 --> 00:01:13,239 pero has llegado tarde, has ido 27 00:01:13,239 --> 00:01:15,659 y has llegado a mitad de la clase interrumpiendo 28 00:01:15,659 --> 00:01:18,319 entonces 29 00:01:18,319 --> 00:01:20,239 si has llegado a mitad de una clase 30 00:01:20,239 --> 00:01:22,480 que ha arrancado, lo normal es decir 31 00:01:22,480 --> 00:01:24,159 puedo pasar porque por defecto 32 00:01:24,159 --> 00:01:25,980 no se interrumpe ningún acto 33 00:01:25,980 --> 00:01:28,120 sea una clase, sea una conferencia 34 00:01:28,120 --> 00:01:30,420 del presidente, no se interrumpe 35 00:01:30,420 --> 00:01:35,079 ya, a ver, pasar 36 00:01:35,079 --> 00:01:37,200 diciendo hola, interrumpir 37 00:01:37,200 --> 00:01:38,819 y además interrumpir mostrando 38 00:01:38,819 --> 00:01:40,840 una educación cuestionable 39 00:01:40,840 --> 00:01:42,939 entonces, tenéis que mejorarla 40 00:01:42,939 --> 00:01:44,939 tenéis que mejorar esa educación y sobre todo 41 00:01:44,939 --> 00:01:46,879 esas pautas de funcionamiento 42 00:01:46,879 --> 00:01:49,319 que todavía son adolescentes 43 00:01:49,319 --> 00:01:51,040 para que salten al modo adulto 44 00:01:51,900 --> 00:01:52,920 ¿vale? entonces 45 00:01:52,920 --> 00:01:54,939 cuando se entra en un sitio donde ya se está 46 00:01:54,939 --> 00:01:56,959 hablando, se está haciendo cosas, como se asume 47 00:01:56,959 --> 00:01:58,620 que se interrumpe, pues se hace una 48 00:01:58,620 --> 00:02:00,599 pequeña muestra de que pudo pasar, entonces 49 00:02:00,599 --> 00:02:02,799 lo normal es que te dejen pasar, se pasa 50 00:02:02,799 --> 00:02:04,900 y ya está, ¿vale? Entonces tú 51 00:02:04,900 --> 00:02:07,019 entrarías así en una reunión 52 00:02:07,019 --> 00:02:08,620 informal que tiene tu jefe 53 00:02:08,620 --> 00:02:09,780 con alguien 54 00:02:09,780 --> 00:02:13,020 dices, no sé, eso es que te cuestionas 55 00:02:13,020 --> 00:02:14,719 tu jefe ha contratado a tres personas 56 00:02:14,719 --> 00:02:16,900 o sea, ha contratado, ha juntado a tres 57 00:02:16,900 --> 00:02:18,960 personas en plan informal, entre las cuales una debería ser 58 00:02:18,960 --> 00:02:20,879 tú, para charlar y está en 59 00:02:20,879 --> 00:02:22,780 una habitación charlando en una sala de reuniones hablando 60 00:02:22,780 --> 00:02:24,780 de ese tema, tú entrarías diciendo 61 00:02:24,780 --> 00:02:25,259 hola 62 00:02:25,259 --> 00:02:27,780 por muy informal que fuera 63 00:02:27,780 --> 00:02:28,900 no deberías 64 00:02:28,900 --> 00:02:31,780 tú darías y diría, disculpad 65 00:02:31,780 --> 00:02:34,240 vengo un poco tarde 66 00:02:34,240 --> 00:02:36,039 pero no sé qué, puedo incorporarme 67 00:02:36,039 --> 00:02:37,340 puedo pasar, eso es lo que harías 68 00:02:37,340 --> 00:02:38,000 ¿verdad? 69 00:02:39,860 --> 00:02:41,360 ¿dudas? pues es lo, ¿vale? 70 00:02:41,639 --> 00:02:43,699 bueno, pues son estas cosas evidentes 71 00:02:43,699 --> 00:02:45,560 que por alguna razón para algunos de vosotros 72 00:02:45,560 --> 00:02:48,080 no son tan evidentes, entonces que se empiecen a hacer evidentes 73 00:02:48,080 --> 00:02:49,919 ¿vale? más que nada para que 74 00:02:49,919 --> 00:02:51,860 luego no nos lleguen los emails 75 00:02:51,860 --> 00:02:53,259 que nos llega una vez tras otro de 76 00:02:53,259 --> 00:02:55,479 ¿qué es esto que nos estáis mandando? 77 00:02:56,500 --> 00:03:00,520 Bueno, los JSON están pensados esencialmente 78 00:03:00,520 --> 00:03:02,400 para que los parsen aplicaciones, 79 00:03:02,960 --> 00:03:04,580 no tanto para que los miren humanos, 80 00:03:04,740 --> 00:03:05,900 para que los parsen aplicaciones. 81 00:03:05,900 --> 00:03:08,879 Por eso los comentarios han desaparecido, 82 00:03:08,960 --> 00:03:09,819 ni se contemplan, 83 00:03:09,919 --> 00:03:12,280 y por eso su estructura se adapta 84 00:03:12,280 --> 00:03:14,280 al paradigma de programación habitual 85 00:03:14,280 --> 00:03:15,620 en las aplicaciones comerciales, 86 00:03:15,680 --> 00:03:16,740 que es la orientada a objetos. 87 00:03:17,400 --> 00:03:18,780 Entonces, ¿cómo es la estructura de un JSON? 88 00:03:19,900 --> 00:03:25,560 Pues un fichero JSON esencialmente 89 00:03:25,919 --> 00:03:37,259 Esencialmente es lo que para nosotros es un objeto, que para el JSON es una cosa entre llaves y es una secuencia, lo que hay entre las llaves es una secuencia de pares. 90 00:03:37,659 --> 00:03:45,740 Clave, valor, clave, valor, clave, valor. Eso es un objeto instanciado, ¿verdad? Un objeto instanciado es propiedad, valor, propiedad, valor, propiedad, valor. 91 00:03:46,099 --> 00:03:55,879 Pues un fichero JSON es como si fuera un objeto instanciado. No es una plantilla, es una cosa que tiene datos. Los datos están en los objetos instanciados, no están en las clases. 92 00:03:55,919 --> 00:04:10,180 Claro. Bueno, pues un objeto, un fichero JSON es como si fuera un objeto ya instanciado, pero sus valores no están en una RAM, sino que están guardados en un fichero de texto. ¿Vale? Entonces, la secuencia de pares, clave-valor, se va separando por comas. 93 00:04:12,020 --> 00:04:25,170 Y la clave va entre comillas, por ejemplo, el nombre, dos puntos y el valor. ¿Vale? Y así podría haber, pues, edad. 94 00:04:28,509 --> 00:04:31,829 no, no, no, es que esto no es 95 00:04:31,829 --> 00:04:34,170 programación, con lo cual 96 00:04:34,170 --> 00:04:36,269 esto no es variable, o sea, esto es 97 00:04:36,269 --> 00:04:37,089 vale 98 00:04:37,089 --> 00:04:39,850 entonces, bueno, así 99 00:04:39,850 --> 00:04:42,389 en este caso, esto tendría 100 00:04:42,389 --> 00:04:43,490 pues 101 00:04:43,490 --> 00:04:46,009 tendría 102 00:04:46,009 --> 00:04:47,370 dos 103 00:04:47,370 --> 00:04:51,970 dos pares, clave, valor y ya está 104 00:04:51,970 --> 00:04:53,550 siguiente pregunta 105 00:04:53,550 --> 00:04:55,470 los valores 106 00:04:55,470 --> 00:04:57,509 ¿qué puedo poner ahí? ¿puedo poner cualquier 107 00:04:57,509 --> 00:04:59,430 cosa? bueno, aquí 108 00:04:59,430 --> 00:05:07,850 Ahí se pueden poner cadenas de texto, cadenas de texto, que sería texto entre comillas, cadenas, ¿vale? 109 00:05:07,889 --> 00:05:08,709 Se podría poner ahí. 110 00:05:09,470 --> 00:05:10,430 ¿Qué se podrían poner? 111 00:05:11,029 --> 00:05:15,430 Números, tanto enteros como decimales, ¿verdad? 112 00:05:15,550 --> 00:05:17,790 Números enteros como números decimales. 113 00:05:18,970 --> 00:05:19,569 Números. 114 00:05:20,790 --> 00:05:23,870 También se puede poner boolean. 115 00:05:24,649 --> 00:05:28,949 También admite poner true o false, ¿vale? 116 00:05:29,430 --> 00:05:35,370 Para que un par clave-valor refleje el hecho de si algo pasa o no pasa. 117 00:05:35,949 --> 00:05:40,689 También admite poner esa palabra que nos suena, null, que es nada. 118 00:05:40,790 --> 00:05:41,829 Aquí todavía no hay nada. 119 00:05:44,410 --> 00:05:49,930 Y el valor puede ser también otro objeto. 120 00:05:53,029 --> 00:05:57,029 Podría ser otro objeto que a su vez es un conjunto de pares clave-valor. 121 00:05:57,029 --> 00:05:58,410 Podría ser otro objeto. 122 00:05:58,410 --> 00:06:05,269 Por ejemplo, aquí podríamos tener, pues, instituto es otra propiedad de este objeto. 123 00:06:06,170 --> 00:06:11,610 Instituto es otra propiedad, ¿vale? 124 00:06:15,769 --> 00:06:25,750 Entonces, instituto, como es un valor complejo, podría tener como contenido otro objeto. 125 00:06:25,750 --> 00:06:35,589 Pues nombre del instituto, el que fuera y localización del instituto, la que fuera, ¿vale? 126 00:06:35,589 --> 00:06:42,029 Luego los objetos pueden ser también valores posibles de un par clave valor, ¿vale? 127 00:06:43,290 --> 00:06:47,889 Entonces esto ya es más parecido a la máquina, de hecho el hecho de que admita un null como valor 128 00:06:47,889 --> 00:06:52,709 pues ya suena a que eso sobre todo tiene sentido para una máquina que lo está parseando, 129 00:06:52,709 --> 00:06:55,050 no para un humano que lo está mirando. 130 00:06:55,750 --> 00:06:59,550 ¿Y qué otro concepto 131 00:06:59,550 --> 00:07:00,430 incorpora un JSON? 132 00:07:01,029 --> 00:07:02,990 El JSON es como el XML 133 00:07:02,990 --> 00:07:05,069 El JSON, sí 134 00:07:05,069 --> 00:07:07,290 El JSON es un formato 135 00:07:07,290 --> 00:07:08,470 para guardar datos 136 00:07:08,470 --> 00:07:11,129 en ficheros de texto 137 00:07:11,129 --> 00:07:13,610 que son los más manejables, los más ligeros 138 00:07:13,610 --> 00:07:14,449 Entonces 139 00:07:14,449 --> 00:07:17,490 tú puedes guardar los datos escribiendo el fichero 140 00:07:17,490 --> 00:07:19,370 de texto, hola, ¿qué tal? Mis datos son... 141 00:07:19,370 --> 00:07:21,389 Pero es que, ¿quién saca 142 00:07:21,389 --> 00:07:23,529 información de ahí? Un humano, si lo lee, sí 143 00:07:23,529 --> 00:07:25,610 pero una máquina, ¿cómo saca información de un texto 144 00:07:25,610 --> 00:07:27,829 escrito en lenguaje natural, entonces hay que darle 145 00:07:27,829 --> 00:07:29,629 un poco de estructura para que una máquina 146 00:07:29,629 --> 00:07:31,629 entienda qué significa cada dato 147 00:07:31,629 --> 00:07:32,810 esa es la meta información 148 00:07:32,810 --> 00:07:35,649 la estructura que le informa a una máquina 149 00:07:35,649 --> 00:07:37,129 qué significa cada cosa 150 00:07:37,129 --> 00:07:39,790 entonces en XML esa estructura es un árbol 151 00:07:39,790 --> 00:07:41,629 entonces que un nodo 152 00:07:41,629 --> 00:07:43,769 esté dentro de otro, te aporta información 153 00:07:43,769 --> 00:07:45,689 que dentro de un nodo haya muchos 154 00:07:45,689 --> 00:07:47,730 nodos repetidos, te aporta información 155 00:07:47,730 --> 00:07:49,910 ¿vale? pues el JSON es otro formato 156 00:07:49,910 --> 00:07:51,589 para organizar 157 00:07:51,589 --> 00:07:53,889 la información, entonces yo podría decir 158 00:07:53,889 --> 00:07:56,189 oye, soy Pepito, tengo 28 años 159 00:07:56,189 --> 00:07:57,750 y voy en el instituto no sé qué. 160 00:07:58,110 --> 00:08:00,129 Para que una máquina saque información 161 00:08:00,129 --> 00:08:01,970 de ahí se vuelve loco. Pero si esa misma 162 00:08:01,970 --> 00:08:03,649 información la pones estructurada así, 163 00:08:04,069 --> 00:08:06,170 Pepito, 28, Rosa, Charly, 164 00:08:06,750 --> 00:08:08,170 Avizalda, 165 00:08:08,610 --> 00:08:09,889 pues una máquina va a sacar esa 166 00:08:09,889 --> 00:08:11,589 información muchísimo mejor. 167 00:08:12,149 --> 00:08:13,930 ¿Vale? Que no está puesto así. Pero es otro formato. 168 00:08:14,910 --> 00:08:15,589 Vale, pues entonces, 169 00:08:16,050 --> 00:08:16,850 los objetos 170 00:08:16,850 --> 00:08:19,610 instanciados, 171 00:08:19,850 --> 00:08:21,310 en nuestra noción de 172 00:08:21,310 --> 00:08:23,589 objeto instanciado, que es algo que tiene valores, 173 00:08:23,589 --> 00:08:30,610 Puede ser el valor también de otra propiedad, de otro par clave-valor. 174 00:08:31,389 --> 00:08:38,850 Y ya, por último, también integra el concepto básico en cualquier lenguaje de programación, que es un array. 175 00:08:39,470 --> 00:08:46,590 En un lenguaje de programación no hacemos nada sin arrays, porque es la manera de tener muchas cosas bajo una única referencia. 176 00:08:48,009 --> 00:08:51,070 El array es un concepto fundamental sin el cual no podemos hacer nada. 177 00:08:51,070 --> 00:08:53,889 otra cosa es que como el array 178 00:08:53,889 --> 00:08:55,610 es costoso 179 00:08:55,610 --> 00:08:57,710 de manejar a nivel 180 00:08:57,710 --> 00:08:59,490 de código, lo envolvamos 181 00:08:59,490 --> 00:09:01,250 en una clase 182 00:09:01,250 --> 00:09:03,070 que tiene el array por debajo 183 00:09:03,070 --> 00:09:04,529 o bueno, tiene otras cosas 184 00:09:04,529 --> 00:09:07,750 y nos lo envuelvan, pues como el array list 185 00:09:07,750 --> 00:09:09,809 o eso, ¿vale? pero el concepto 186 00:09:09,809 --> 00:09:11,549 básico de caja 187 00:09:11,549 --> 00:09:13,850 en la que yo meto muchas cosas bajo una única referencia 188 00:09:13,850 --> 00:09:14,570 es imprescindible 189 00:09:14,570 --> 00:09:16,850 para programar cualquier cosa 190 00:09:16,850 --> 00:09:19,809 pues ese concepto se mete también en los JSON 191 00:09:19,809 --> 00:09:43,789 Es un array en JSON, se hace entre corchetes con los elementos que tenga separados por comas y los elementos que tiene el array, de nuevo, pueden ser cadenas, números, los posibles valores que tiene el JSON o también objetos, también objetos puede tener el array, ¿vale? 192 00:09:44,629 --> 00:09:48,970 Bueno, pues un valor posible también puede ser un array, ¿vale? 193 00:09:49,049 --> 00:09:49,509 Un array. 194 00:09:50,009 --> 00:09:53,529 Entonces, este de aquí podría tener instituto, módulos. 195 00:09:53,850 --> 00:09:54,370 ¿Qué tengo? 196 00:09:54,830 --> 00:09:59,169 Como módulos son muchos, pues el valor de esta clave módulos 197 00:09:59,169 --> 00:10:03,850 podría ser un array con todos los nombres de mis módulos, por ejemplo, 198 00:10:03,850 --> 00:10:09,210 o con todos los objetos que guardan la información de mi módulo, 199 00:10:09,309 --> 00:10:11,070 nombre, profesor, ¿vale? 200 00:10:11,070 --> 00:10:13,850 pues ya está, combinando eso tenemos un JSON 201 00:10:13,850 --> 00:10:14,850 entonces según 202 00:10:14,850 --> 00:10:16,009 la 203 00:10:16,009 --> 00:10:19,149 el estándar de JSON 204 00:10:19,149 --> 00:10:21,610 pues un fichero JSON es válido 205 00:10:21,610 --> 00:10:22,909 si contiene 206 00:10:22,909 --> 00:10:25,529 un único objeto 207 00:10:25,529 --> 00:10:27,330 de estos o también 208 00:10:27,330 --> 00:10:29,870 si contiene un array de objetos 209 00:10:29,870 --> 00:10:31,750 también 210 00:10:31,750 --> 00:10:33,330 es un fichero JSON 211 00:10:33,330 --> 00:10:35,529 válido según 212 00:10:35,529 --> 00:10:37,169 el estándar de JSON, vale 213 00:10:37,169 --> 00:10:39,950 tanto un fichero de objetos 214 00:10:39,950 --> 00:10:45,570 y el objeto con dentro todo lo que haga falta 215 00:10:45,570 --> 00:10:46,750 como un único objeto 216 00:10:46,750 --> 00:10:49,509 ambos son, según el estándar 217 00:10:49,509 --> 00:10:51,070 de JSON, son JSON válidos 218 00:10:51,070 --> 00:10:52,929 que cualquier framework de JSON 219 00:10:52,929 --> 00:10:54,450 puede parsear sin problema 220 00:10:54,450 --> 00:10:56,690 tanto una RAI de muchos de estos 221 00:10:56,690 --> 00:10:58,190 como uno único 222 00:10:58,190 --> 00:11:01,629 entonces esto tiene un paralelismo claro con el XML 223 00:11:01,629 --> 00:11:03,750 este JSON sería 224 00:11:03,750 --> 00:11:07,250 un nodo RAID 225 00:11:07,250 --> 00:11:09,509 un nodo RAID, alumno, usuario 226 00:11:09,509 --> 00:11:11,210 lo que fuera, con su nodo nombre 227 00:11:11,210 --> 00:11:14,049 su nodo edad, su nodo instituto 228 00:11:14,049 --> 00:11:15,690 que tendría los subnodos dentro 229 00:11:15,690 --> 00:11:18,409 que serían nombre y localización 230 00:11:18,409 --> 00:11:20,169 su nodo módulos 231 00:11:20,169 --> 00:11:22,149 que sería un envolvente de un montón 232 00:11:22,149 --> 00:11:22,970 de módulos 233 00:11:22,970 --> 00:11:25,789 es decir, el paralelismo 234 00:11:25,789 --> 00:11:26,950 entre un JSON y un XML 235 00:11:26,950 --> 00:11:29,889 es inmediato 236 00:11:29,889 --> 00:11:31,350 pero 237 00:11:31,350 --> 00:11:34,129 esto es mucho más 238 00:11:34,129 --> 00:11:35,889 parecido a la 239 00:11:35,889 --> 00:11:38,090 notación de objetos y de clases 240 00:11:38,090 --> 00:11:40,090 y por tanto cualquier programa orientado a objetos 241 00:11:40,090 --> 00:11:43,129 Pues lo va a parsear, se supone, con más facilidad 242 00:11:43,129 --> 00:11:44,990 Vale, JSON no lo hemos dicho 243 00:11:44,990 --> 00:11:46,710 Viene de 244 00:11:46,710 --> 00:11:48,590 Javascript 245 00:11:48,590 --> 00:11:50,190 Object Notation, juraría 246 00:11:50,190 --> 00:12:00,360 Si alguien tiene 247 00:12:00,360 --> 00:12:03,419 Un navegador abierto, que lo busque rápido 248 00:12:03,419 --> 00:12:05,440 Viene de ahí, ¿verdad? 249 00:12:06,679 --> 00:12:07,200 Vale 250 00:12:07,200 --> 00:12:09,679 Bueno, pues a nosotros 251 00:12:09,679 --> 00:12:11,039 Que nos interesa los JSON 252 00:12:11,039 --> 00:12:12,980 Sí que se usan muchísimo, ¿vale? 253 00:12:13,399 --> 00:12:14,820 Como ficheros de configuración 254 00:12:14,820 --> 00:12:17,740 sustituyendo progresivamente 255 00:12:17,740 --> 00:12:19,519 a los XML o en muchos casos 256 00:12:19,519 --> 00:12:21,700 ya sustituidos, aunque bueno, se arrastre 257 00:12:21,700 --> 00:12:23,620 mucho XML todavía, es inevitable 258 00:12:23,620 --> 00:12:24,820 que se arrastre mucho XML 259 00:12:24,820 --> 00:12:26,840 sobre todo 260 00:12:26,840 --> 00:12:29,379 como traspaso de información 261 00:12:29,379 --> 00:12:31,399 entre microservicios 262 00:12:31,399 --> 00:12:33,700 ese es uno quizá de las cosas 263 00:12:33,700 --> 00:12:35,740 en los que más ha entrado 264 00:12:35,740 --> 00:12:37,000 el JSON 265 00:12:37,000 --> 00:12:38,080 seguro que hay programas para 266 00:12:38,080 --> 00:12:41,860 transmitir XML a JSON 267 00:12:41,860 --> 00:12:43,580 seguro, seguro 268 00:12:43,580 --> 00:12:44,720 claro 269 00:12:44,720 --> 00:12:45,740 seguro 270 00:12:45,740 --> 00:12:47,220 entonces 271 00:12:47,220 --> 00:12:47,679 que es un 272 00:12:47,679 --> 00:12:48,240 ya que lo 273 00:12:48,240 --> 00:12:49,639 hemos mencionado 274 00:12:49,639 --> 00:12:52,659 y luego 275 00:12:52,659 --> 00:12:54,279 podemos hacer 276 00:12:54,279 --> 00:12:55,139 un ejemplito 277 00:12:55,139 --> 00:12:58,649 como 278 00:12:58,649 --> 00:13:00,149 es inevitable 279 00:13:00,149 --> 00:13:01,149 que si mencionamos 280 00:13:01,149 --> 00:13:01,549 Jason 281 00:13:01,549 --> 00:13:02,629 no nos venga 282 00:13:02,629 --> 00:13:03,289 este término 283 00:13:03,289 --> 00:13:03,789 a la cabeza 284 00:13:03,789 --> 00:13:04,629 nos tiene que venir 285 00:13:04,629 --> 00:13:05,669 pues bueno 286 00:13:05,669 --> 00:13:06,789 que nos empiece 287 00:13:06,789 --> 00:13:07,649 a sonar un poco 288 00:13:07,649 --> 00:13:08,490 ¿vale? 289 00:13:09,149 --> 00:13:09,789 entonces 290 00:13:09,789 --> 00:13:10,750 nosotros 291 00:13:10,750 --> 00:13:11,789 estamos acostumbrados 292 00:13:11,789 --> 00:13:12,809 a hacer aplicaciones 293 00:13:12,809 --> 00:13:15,409 con su arquitectura 294 00:13:15,409 --> 00:13:32,990 Pues sus clases, cuando yo tengo que resolver un problema, me hago mi método que me resuelve mi problema, lo llamo desde la otra clase y ya está. Y así tengo yo mi aplicación hecha, que se lo guisa y se lo come todo con sus métodos ahí ubicados. 295 00:13:32,990 --> 00:13:36,250 Esto, ¿esto qué es? 296 00:13:36,289 --> 00:13:37,590 Pues esto es una arquitectura 297 00:13:37,590 --> 00:13:41,720 que es un poquito 298 00:13:41,720 --> 00:13:43,799 monolítica 299 00:13:43,799 --> 00:13:47,899 Pues ya está 300 00:13:47,899 --> 00:13:50,039 Yo ahí tengo mi monolito 301 00:13:50,039 --> 00:13:51,399 donde lo tengo todo 302 00:13:51,399 --> 00:13:53,700 Y bueno, y no pasa nada 303 00:13:53,700 --> 00:13:55,440 porque esto sigue siendo reutilizable 304 00:13:55,440 --> 00:13:56,740 Yo puedo publicar 305 00:13:56,740 --> 00:13:59,399 estas clases 306 00:13:59,399 --> 00:14:01,100 en Mishar, en donde sea 307 00:14:01,100 --> 00:14:03,480 y los pueden reutilizar y ya está, no pasa nada 308 00:14:03,480 --> 00:14:05,559 Pero hombre, lo pongo quizá un poquito 309 00:14:05,559 --> 00:14:06,259 más complicado 310 00:14:06,259 --> 00:14:08,659 si quiero yo ser usado 311 00:14:08,659 --> 00:14:10,299 de esta manera como más complicado 312 00:14:10,299 --> 00:14:12,779 entonces, para hacer la arquitectura 313 00:14:12,779 --> 00:14:14,799 más ágil, ahora ya en este mundo 314 00:14:14,799 --> 00:14:16,980 de internet y de reutilización y de todo eso 315 00:14:16,980 --> 00:14:17,940 para hacerla más ágil 316 00:14:17,940 --> 00:14:19,840 pues podríamos hacer 317 00:14:19,840 --> 00:14:22,080 podríamos programar 318 00:14:22,080 --> 00:14:25,340 basándonos en una arquitectura 319 00:14:25,340 --> 00:14:27,539 de microservicios 320 00:14:27,539 --> 00:14:37,340 vale, ¿qué es un microservicio? 321 00:14:38,059 --> 00:14:39,240 pues un servicio pequeñito 322 00:14:39,240 --> 00:14:41,259 ¿y qué es un servicio? 323 00:14:41,259 --> 00:14:43,720 pues una utilidad para el universo 324 00:14:43,720 --> 00:14:45,679 ¿no? eso es un servicio, una utilidad 325 00:14:45,679 --> 00:14:49,590 ¿te estás enterando? 326 00:14:49,850 --> 00:14:49,970 ¿eh? 327 00:14:51,309 --> 00:14:53,330 un microservicio es como el que tenéis ahí 328 00:14:53,330 --> 00:14:55,509 encima cerrado, o sea, es que eso ya es un servicio 329 00:14:55,509 --> 00:14:57,250 nulo, un null service 330 00:14:57,250 --> 00:14:59,470 pues un microservicio es un servicio 331 00:14:59,470 --> 00:15:01,690 eso, un servicio pequeñito 332 00:15:01,690 --> 00:15:03,370 y un servicio es 333 00:15:03,370 --> 00:15:05,370 una utilidad al universo 334 00:15:05,370 --> 00:15:07,309 ¿vale? entonces 335 00:15:07,309 --> 00:15:09,649 uno, pues puede hacer una utilidad 336 00:15:09,649 --> 00:15:11,389 para el universo, pues como 337 00:15:11,389 --> 00:15:13,529 por ejemplo, validar la letra 338 00:15:13,529 --> 00:15:15,250 del DNI, utilidades 339 00:15:15,250 --> 00:15:17,250 que se pueden usar muchísimo, muchas 340 00:15:17,250 --> 00:15:19,049 aplicaciones, entonces 341 00:15:19,049 --> 00:15:21,169 pues uno hace esa 342 00:15:21,169 --> 00:15:21,850 utilidad 343 00:15:21,850 --> 00:15:26,710 consultar datos 344 00:15:26,710 --> 00:15:28,350 de no sé qué para cualquier cosa 345 00:15:28,350 --> 00:15:30,230 algo que necesite en su aplicación 346 00:15:30,230 --> 00:15:32,850 pues va separando en servicios pequeñitos 347 00:15:32,850 --> 00:15:34,049 utilidades pequeñitas 348 00:15:34,049 --> 00:15:36,409 utilidades pequeñitas que van a usar 349 00:15:36,409 --> 00:15:38,370 muchas de las aplicaciones de mi empresa 350 00:15:38,370 --> 00:15:40,470 de donde sea, vale, pues esa utilidad 351 00:15:40,470 --> 00:15:41,789 pequeñita yo ya la hago 352 00:15:41,789 --> 00:15:43,990 y alguien tiene que llamarla 353 00:15:43,990 --> 00:15:45,330 y tiene que devolver un valor 354 00:15:45,330 --> 00:15:47,590 vale, esa utilidad pequeñita 355 00:15:47,590 --> 00:15:49,309 ¿cómo la publico? 356 00:15:50,110 --> 00:15:51,889 bueno, pues de nuevo, podría yo meterla 357 00:15:51,889 --> 00:15:53,789 en una clase, hacer el hard, decir toma el hard 358 00:15:53,789 --> 00:15:55,110 y ya está, y llámame 359 00:15:55,110 --> 00:15:58,009 vale, pero, bueno, es un poco feo, poco ágil 360 00:15:58,009 --> 00:16:00,149 eso, ¿no? entonces, ¿cómo la podemos publicar? 361 00:16:00,629 --> 00:16:02,009 pues podemos llevar esta utilidad 362 00:16:02,009 --> 00:16:04,009 pequeñita a una 363 00:16:04,009 --> 00:16:05,850 aplicación web 364 00:16:05,850 --> 00:16:08,090 a un servidor web 365 00:16:08,090 --> 00:16:08,529 perdón 366 00:16:08,529 --> 00:16:11,669 ¿vale? lo podemos llevar 367 00:16:11,669 --> 00:16:12,950 Esta utilidad pequeñita 368 00:16:12,950 --> 00:16:15,970 La programamos de tal manera 369 00:16:15,970 --> 00:16:17,710 Ya veremos como 370 00:16:17,710 --> 00:16:19,090 La programamos de tal manera 371 00:16:19,090 --> 00:16:22,129 Que en lugar de arrancarla 372 00:16:22,129 --> 00:16:23,649 La máquina virtual directamente 373 00:16:23,649 --> 00:16:25,230 Como es una aplicación de escritorio 374 00:16:25,230 --> 00:16:28,230 La arranca un servidor de aplicaciones 375 00:16:28,230 --> 00:16:32,350 Que un servidor de aplicaciones es otra cosa distinta 376 00:16:32,350 --> 00:16:33,169 ¿Vale? 377 00:16:33,190 --> 00:16:34,409 Un servidor de aplicaciones 378 00:16:34,409 --> 00:16:35,669 Pues los que habéis hecho web 379 00:16:35,669 --> 00:16:38,250 Lógicamente lo sabéis de memoria 380 00:16:38,250 --> 00:16:41,169 Y cualquier cosa rara que diga 381 00:16:41,169 --> 00:16:43,169 me la corregís 382 00:16:43,169 --> 00:16:45,370 pero bueno, es un resumen muy resumido 383 00:16:45,370 --> 00:16:47,509 un servidor de aplicaciones es otro tipo de máquina 384 00:16:47,509 --> 00:16:49,070 no es una máquina virtual sin más 385 00:16:49,070 --> 00:16:51,009 de mi ordenador, un servidor de aplicaciones 386 00:16:51,009 --> 00:16:52,769 es capaz 387 00:16:52,769 --> 00:16:53,809 que añade 388 00:16:53,809 --> 00:16:57,049 pues un servidor de aplicaciones es capaz 389 00:16:57,049 --> 00:16:59,149 de estar ahí escuchando con su oreja 390 00:16:59,149 --> 00:17:01,330 de estar ahí escuchando peticiones 391 00:17:01,330 --> 00:17:03,570 que le lleguen por un puerto 392 00:17:03,570 --> 00:17:05,289 está ahí poco a poco arrancado 393 00:17:05,289 --> 00:17:06,269 escuchando peticiones 394 00:17:06,269 --> 00:17:08,329 y cuando esa petición le llega 395 00:17:08,329 --> 00:17:11,089 él extrae de esa petición 396 00:17:11,089 --> 00:17:11,910 get post 397 00:17:11,910 --> 00:17:14,809 el tipo que sea y con los parámetros 398 00:17:14,809 --> 00:17:16,569 que llegue, la información que le llegue 399 00:17:16,569 --> 00:17:18,650 extrae de esa 400 00:17:18,650 --> 00:17:20,849 todo ese paquete que le llega 401 00:17:20,849 --> 00:17:22,950 soy get, soy post, tengo estos parámetros 402 00:17:22,950 --> 00:17:24,430 voy a este sitio 403 00:17:24,430 --> 00:17:26,710 te estoy invocando a este programa 404 00:17:26,710 --> 00:17:29,009 te doy estos datos, de todo eso que le llega 405 00:17:29,009 --> 00:17:30,710 ahí empaquetado, el servidor de aplicaciones 406 00:17:30,710 --> 00:17:32,190 es capaz de pum 407 00:17:32,190 --> 00:17:34,369 cargar este pequeño 408 00:17:34,369 --> 00:17:36,930 código de ahí, es capaz de 409 00:17:36,930 --> 00:17:38,450 cargarlo, lo carga 410 00:17:38,450 --> 00:17:40,869 y esto ya sí que es un código Java que se ejecuta 411 00:17:40,869 --> 00:17:42,549 accede a la base de datos, lo que haga 412 00:17:42,549 --> 00:17:44,930 y ahí se queda cargado 413 00:17:44,930 --> 00:17:47,069 ya él ahí cargadito, el servidor de aplicaciones 414 00:17:47,069 --> 00:17:48,849 y ya esto se queda muy ágil 415 00:17:48,849 --> 00:17:51,150 lo llama y el servidor de aplicaciones 416 00:17:51,150 --> 00:17:52,890 pues es capaz de 417 00:17:52,890 --> 00:17:54,210 mandar la respuesta 418 00:17:54,210 --> 00:17:57,329 a ese request que le ha llegado 419 00:17:57,329 --> 00:17:59,190 pues él ya puede construir 420 00:17:59,190 --> 00:17:59,930 un response 421 00:17:59,930 --> 00:18:02,809 ¿vale? entonces mi aplicación 422 00:18:02,809 --> 00:18:05,410 puede integrar llamadas 423 00:18:05,410 --> 00:18:07,009 a estas 424 00:18:07,009 --> 00:18:08,150 urls 425 00:18:08,150 --> 00:18:11,190 y estas urls van invocando 426 00:18:11,190 --> 00:18:12,549 esos pequeños servicios 427 00:18:12,549 --> 00:18:15,130 ¿vale? entonces eso es más ágil 428 00:18:15,130 --> 00:18:17,210 que buscar mi dependencia, integrarla 429 00:18:17,210 --> 00:18:18,150 en mi aplicación 430 00:18:18,150 --> 00:18:20,730 eso va engordando, va engordando 431 00:18:20,730 --> 00:18:23,309 dependo efectivamente de que la dependencia 432 00:18:23,309 --> 00:18:25,190 esté disponible, sin embargo 433 00:18:25,190 --> 00:18:27,109 los servicios se ejecutan en el 434 00:18:27,109 --> 00:18:28,450 servidor de aplicaciones y ahí los tengo 435 00:18:28,450 --> 00:18:30,529 yo los llamo 436 00:18:30,529 --> 00:18:32,930 me da la respuesta y se acabó, entonces esta 437 00:18:32,930 --> 00:18:34,930 arquitectura ya sí que está completamente distribuida 438 00:18:34,930 --> 00:18:37,670 porque gran parte de mis funcionalidades 439 00:18:37,670 --> 00:18:39,829 se están ejecutando en servidores de aplicaciones 440 00:18:39,829 --> 00:18:41,509 y yo obtengo la respuesta y ya está 441 00:18:41,509 --> 00:18:43,690 vale, pues a que venía 442 00:18:43,690 --> 00:18:44,490 todo este rollo 443 00:18:44,490 --> 00:18:47,589 todo este rollo venía a que 444 00:18:47,589 --> 00:18:49,730 para 445 00:18:49,730 --> 00:18:51,529 muchos de estos microservicios 446 00:18:51,529 --> 00:18:53,690 una forma muy 447 00:18:53,690 --> 00:18:55,670 ágil y muy fácilmente 448 00:18:55,670 --> 00:18:58,009 parseable de recibirle 449 00:18:58,009 --> 00:18:59,509 informaciones en un JSON, normalmente 450 00:18:59,509 --> 00:19:01,549 cuando uno consulta datos de una base de datos 451 00:19:01,549 --> 00:19:03,910 o pide cosas, lo que recibe 452 00:19:03,910 --> 00:19:05,930 son objetos, eso es lo que quiere, objetos 453 00:19:05,930 --> 00:19:07,829 porque objetos es con lo que trabaja su aplicación 454 00:19:07,829 --> 00:19:10,009 trabaja con objetos, pues que mejor 455 00:19:10,009 --> 00:19:11,470 manera de pasar 456 00:19:11,470 --> 00:19:13,950 por esta tubería un objeto 457 00:19:13,950 --> 00:19:16,089 que en un fichero de texto 458 00:19:16,089 --> 00:19:17,890 JSON que lo representa 459 00:19:17,890 --> 00:19:19,930 que mejor manera, bueno pues 460 00:19:19,930 --> 00:19:21,730 el JSON ha encajado 461 00:19:21,730 --> 00:19:23,690 perfectamente en esta arquitectura 462 00:19:23,690 --> 00:19:25,349 ¿vale? 463 00:19:25,890 --> 00:19:28,309 entonces, estos pequeñitos 464 00:19:28,309 --> 00:19:29,890 servicios web, pues 465 00:19:29,890 --> 00:19:31,769 tendrán sus frameworks para 466 00:19:31,769 --> 00:19:32,990 parsear estos JSON 467 00:19:32,990 --> 00:19:34,950 para construirlos 468 00:19:34,950 --> 00:19:36,569 cuando los mandan de salida, etc. 469 00:19:37,210 --> 00:19:37,529 ¿Vale? 470 00:19:39,049 --> 00:19:41,069 Bueno, pues, ¿y de qué frameworks hablamos? 471 00:19:41,109 --> 00:19:43,109 Que son necesarios, entonces, en cualquier 472 00:19:43,109 --> 00:19:45,009 contexto en el que haya que parchear un JSON. 473 00:19:46,230 --> 00:19:47,069 A ver, pues, 474 00:19:47,789 --> 00:19:48,869 esencialmente, el 475 00:19:48,869 --> 00:19:50,589 tocho, el gordo, el guapo, 476 00:19:51,170 --> 00:19:52,950 el magnífico, 477 00:19:53,549 --> 00:19:54,089 es el mismo. 478 00:19:56,079 --> 00:19:58,160 Entonces, cuando tenemos una aplicación gorda 479 00:19:58,160 --> 00:20:00,500 y nos ponemos a mirar sus dependencias, 480 00:20:00,759 --> 00:20:01,559 es muy raro 481 00:20:01,559 --> 00:20:03,940 que no aparezca entre sus dependencias 482 00:20:03,940 --> 00:20:06,420 un paquete que diga 483 00:20:06,420 --> 00:20:08,119 algo así, paster xml 484 00:20:08,119 --> 00:20:09,819 punto jackson, bla bla bla 485 00:20:09,819 --> 00:20:12,339 es raro, porque ese es un framework 486 00:20:12,339 --> 00:20:14,200 enorme con un tocho con 487 00:20:14,200 --> 00:20:16,180 millones de posibilidades y de cosas 488 00:20:16,180 --> 00:20:17,940 entre ellas un parseo 489 00:20:17,940 --> 00:20:20,079 muy eficiente del json 490 00:20:20,079 --> 00:20:22,220 con miles de métodos 491 00:20:22,220 --> 00:20:24,240 de los cuales uno 492 00:20:24,240 --> 00:20:25,140 recuerda dos 493 00:20:25,140 --> 00:20:28,619 pero no le hace falta recordar más, sabiendo la filosofía 494 00:20:28,619 --> 00:20:30,420 de abajo, luego ya rápidamente 495 00:20:30,420 --> 00:20:31,619 puede ir a hacer lo que 496 00:20:31,619 --> 00:20:34,140 lo que necesite 497 00:20:34,140 --> 00:20:36,559 ¿vale? y el FasterXML 498 00:20:36,559 --> 00:20:38,119 este, pues imagino que será otro 499 00:20:38,119 --> 00:20:39,299 igual que el GlassFish 500 00:20:39,299 --> 00:20:42,240 pues el FasterXML será otro 501 00:20:42,240 --> 00:20:43,579 otro consorcio 502 00:20:43,579 --> 00:20:45,559 de desarrolladores 503 00:20:45,559 --> 00:20:48,359 ¿vale? y entre lo que han desarrollado 504 00:20:48,359 --> 00:20:49,299 pues esta cosa también 505 00:20:49,299 --> 00:20:51,160 también está para 506 00:20:51,160 --> 00:20:54,140 cuando nuestra 507 00:20:54,140 --> 00:20:56,500 ambición está un poquito más 508 00:20:56,500 --> 00:20:57,599 reducida 509 00:20:57,599 --> 00:20:59,420 pues Google 510 00:20:59,420 --> 00:21:00,779 tiene esta 511 00:21:00,779 --> 00:21:02,460 ¿Vale? 512 00:21:03,920 --> 00:21:04,359 JSON 513 00:21:04,359 --> 00:21:07,059 Y esta es más manejable, más amigable 514 00:21:07,059 --> 00:21:10,039 Pero bueno, lo que hay de fondo es lo mismo 515 00:21:10,039 --> 00:21:12,140 Tú parseas, te da un nodo 516 00:21:12,140 --> 00:21:12,839 Un objeto 517 00:21:12,839 --> 00:21:15,619 Nodo JSON y de ahí vas entrando 518 00:21:15,619 --> 00:21:16,259 Y ya está 519 00:21:16,259 --> 00:21:18,839 Esta es como más simplicita 520 00:21:18,839 --> 00:21:20,660 Y esta es un poco más tocha 521 00:21:20,660 --> 00:21:23,099 Entonces vamos a hacer un ejemplito con esta 522 00:21:23,099 --> 00:21:24,299 ¿Vale? 523 00:21:25,920 --> 00:21:27,960 A ver, ejemplito que nos vamos a hacer 524 00:21:27,960 --> 00:21:29,720 Eso 525 00:21:29,720 --> 00:21:31,779 un lío completamente, porque 526 00:21:31,779 --> 00:21:33,880 entre que encontremos los métodos, no sé qué 527 00:21:33,880 --> 00:21:35,700 claro, pero es que ese es nuestro trabajo 528 00:21:35,700 --> 00:21:37,740 hacernos un lío y sobrevivir 529 00:21:37,740 --> 00:21:39,519 no, no, la simple la miráis vosotros 530 00:21:39,519 --> 00:21:41,960 si la simple es la que vimos año pasado 531 00:21:41,960 --> 00:21:43,779 pero es que cada año sois todos mucho 532 00:21:43,779 --> 00:21:45,980 más listos, entonces este año ya pasamos 533 00:21:45,980 --> 00:21:48,059 de la simple y nos vamos a esta directamente 534 00:21:48,059 --> 00:21:49,019 pero no 535 00:21:49,019 --> 00:21:50,980 no, al contrario 536 00:21:50,980 --> 00:21:53,900 no quiero insultar vuestra inteligencia 537 00:21:53,900 --> 00:21:58,160 Jason no tiene atributos 538 00:21:58,160 --> 00:21:59,440 no, o sea 539 00:21:59,440 --> 00:22:02,099 lo que está entre llaves 540 00:22:02,099 --> 00:22:03,779 o hay que hacer como un xml 541 00:22:03,779 --> 00:22:05,660 olvídate del xml 542 00:22:05,660 --> 00:22:07,980 el xml lo hemos dejado atrás ahora mismo 543 00:22:07,980 --> 00:22:10,119 vale, entonces 544 00:22:10,119 --> 00:22:12,019 pues vamos a poner un ejemplito en el cual 545 00:22:12,019 --> 00:22:14,200 con el jackson este, parseamos 546 00:22:14,200 --> 00:22:16,539 un json, lo retocamos, lo volvemos a escribir 547 00:22:16,539 --> 00:22:18,380 y ya está, y luego por último 548 00:22:18,380 --> 00:22:20,380 lo vamos a 549 00:22:20,380 --> 00:22:21,880 a usar 550 00:22:21,880 --> 00:22:23,960 pues desde un servicio de estos 551 00:22:23,960 --> 00:22:25,160 en un servidor de aplicaciones 552 00:22:25,160 --> 00:22:27,720 vale, entonces nos vamos a hacer 553 00:22:27,720 --> 00:22:30,339 un pequeñísimo 554 00:22:30,339 --> 00:22:32,339 servicio de estos 555 00:22:32,339 --> 00:22:34,099 un pequeñísimo servicio que use el 556 00:22:34,099 --> 00:22:34,960 FasterXML 557 00:22:34,960 --> 00:22:37,799 y ya está 558 00:22:37,799 --> 00:22:39,619 pero lo vamos a hacer 559 00:22:39,619 --> 00:22:41,759 desde sus tripas 560 00:22:41,759 --> 00:22:44,380 desde lo que tiene en la base 561 00:22:44,380 --> 00:22:46,420 de cero, no con esos envolventes 562 00:22:46,420 --> 00:22:48,220 que se le ponen por encima de Spring Boot 563 00:22:48,220 --> 00:22:50,160 de no sé qué, no, lo vamos a hacer con 564 00:22:50,160 --> 00:22:51,960 destripado, desde cero 565 00:22:51,960 --> 00:22:53,920 pero bueno, primero vamos a ver si nos aclaramos con el 566 00:22:53,920 --> 00:22:56,140 Faster, con el Jackson este de aquí 567 00:22:56,140 --> 00:22:57,299 venga 568 00:22:57,299 --> 00:23:02,390 A ver 569 00:23:02,390 --> 00:23:06,150 Pues vamos a ver 570 00:23:06,150 --> 00:23:12,569 Abrimos 571 00:23:12,569 --> 00:23:14,569 Ahora pongo la esta que no está puesta 572 00:23:14,569 --> 00:23:17,609 Nuestro eclipse 573 00:23:17,609 --> 00:23:20,650 Tengo 200.000 millones de eclipses 574 00:23:20,650 --> 00:23:22,269 Ya no sé cuál es 575 00:23:22,269 --> 00:23:24,069 El que tengo que abrir cada vez 576 00:23:24,069 --> 00:23:27,630 Ahora mismo lo normal 577 00:23:27,630 --> 00:23:29,910 Vamos a hacer un ejemplo con el XML 578 00:23:29,910 --> 00:23:32,509 Para que la arquitectura nos funcione 579 00:23:32,509 --> 00:23:34,289 Y luego ya mover eso 580 00:23:34,289 --> 00:23:36,130 A un servicio web 581 00:23:36,130 --> 00:23:37,509 Es moverlo al serplet y se acabó 582 00:23:37,509 --> 00:23:38,190 No tiene más 583 00:23:38,190 --> 00:24:04,500 Vale 584 00:24:04,500 --> 00:24:08,400 Dígame 585 00:24:08,400 --> 00:24:10,440 ¿Eh? 586 00:24:11,180 --> 00:24:12,339 Que lo haga grande 587 00:24:12,339 --> 00:24:14,339 Vale 588 00:24:14,339 --> 00:24:16,359 Venga, a ver 589 00:24:16,359 --> 00:24:19,099 Lo empezamos de cero 590 00:24:19,099 --> 00:24:21,200 Para que nos salgan todos los errores posibles 591 00:24:21,200 --> 00:24:23,480 Del mundo y los arreglemos 592 00:24:23,480 --> 00:24:29,059 no pasa nada porque tengo chuletitas 593 00:24:29,059 --> 00:24:30,720 aquí de sobra para acudir a ellas 594 00:24:30,720 --> 00:24:32,200 cuando haga falta y tenemos HGPT 595 00:24:32,200 --> 00:24:34,359 así que vamos a sobrevivir 596 00:24:34,359 --> 00:24:36,240 dentro de esta circunstancia terrible 597 00:24:36,240 --> 00:24:38,400 que es trabajar con un Jason con el Jackson 598 00:24:38,400 --> 00:24:40,880 entonces, vale 599 00:24:40,880 --> 00:24:44,779 a ver, como vamos 600 00:24:44,779 --> 00:24:47,019 lógicamente a necesitar dependencias 601 00:24:47,019 --> 00:24:48,460 pues un Maven Project 602 00:24:48,460 --> 00:24:53,220 todo lo más simple del mundo 603 00:24:53,220 --> 00:25:06,539 vale 604 00:25:06,539 --> 00:25:09,160 ficheros 605 00:25:09,160 --> 00:25:10,140 Jason 606 00:25:10,140 --> 00:25:17,970 Nuestro objetivo es ver solamente de qué va esto 607 00:25:17,970 --> 00:25:19,269 ¿Vale? No lógicamente 608 00:25:19,269 --> 00:25:21,990 Meternos en todo el conocimiento posible 609 00:25:21,990 --> 00:25:23,269 De Jackson porque es imposible 610 00:25:23,269 --> 00:25:24,970 ¡Hala! 611 00:25:27,609 --> 00:25:28,750 Ya lo tenemos 612 00:25:28,750 --> 00:25:30,269 Aquí 613 00:25:30,269 --> 00:25:31,609 Vale 614 00:25:31,609 --> 00:25:40,859 Vamos a, si decidimos que usamos Jackson 615 00:25:40,859 --> 00:25:43,000 Pues vamos a necesitar poner aquí la dependencia 616 00:25:43,000 --> 00:25:44,539 Bueno, antes que nada, que siempre se me olvida 617 00:25:44,539 --> 00:25:46,279 Vamos a subir 618 00:25:46,279 --> 00:25:48,940 La máquina virtual 619 00:25:48,940 --> 00:25:51,299 Esto no es que sea crítico 620 00:25:51,299 --> 00:25:53,059 La gran mayoría de las cosas que hacemos 621 00:25:53,059 --> 00:25:55,859 Están soportadas en 1.8 622 00:25:55,859 --> 00:25:58,380 Pero puede que algunas no 623 00:25:58,380 --> 00:25:59,200 Entonces como 624 00:25:59,200 --> 00:26:01,740 Estamos usando la última versión de todo 625 00:26:01,740 --> 00:26:02,299 Pues venga 626 00:26:02,299 --> 00:26:05,380 Yo voy a cambiar a la 627 00:26:05,380 --> 00:26:07,819 Última mía 628 00:26:07,819 --> 00:26:09,240 Aunque ahora ya tengo la 22 629 00:26:09,240 --> 00:26:11,680 Ah perdón, este clip si igual no coge la 22 630 00:26:11,680 --> 00:26:18,220 Vale 631 00:26:18,220 --> 00:26:32,250 Y esto de aquí 632 00:26:32,250 --> 00:26:36,660 En el 633 00:26:36,660 --> 00:26:39,099 Web Developers 634 00:26:39,099 --> 00:26:40,680 Que descargamos el otro día 635 00:26:40,680 --> 00:26:43,720 Ya no me sale el POM rojo 636 00:26:43,720 --> 00:26:45,339 Aunque esto no tenga la S 637 00:26:45,339 --> 00:26:48,039 En el que 638 00:26:48,039 --> 00:26:50,599 Es el primero en el que me ha pasado 639 00:26:50,599 --> 00:26:52,460 Que ya no me salga 640 00:26:52,460 --> 00:26:55,140 El plugin de Maven 641 00:26:55,140 --> 00:26:56,619 Por lo que sea te cambia 642 00:26:56,619 --> 00:26:58,359 Alguna versión que hay por aquí 643 00:26:58,359 --> 00:26:59,880 Y en esa versión ya no sale ese error 644 00:26:59,880 --> 00:27:00,440 No lo sé 645 00:27:00,440 --> 00:27:05,380 Bueno pero no estás en el de Web Developers 646 00:27:05,380 --> 00:27:06,059 No 647 00:27:06,059 --> 00:27:08,220 Por eso, que a mí en el primero el que me he encontrado 648 00:27:08,220 --> 00:27:10,440 Que no me sale es el de web developers del 25 649 00:27:10,440 --> 00:27:14,079 Vale, pues nada, entonces 650 00:27:14,079 --> 00:27:15,539 Dependencia 651 00:27:15,539 --> 00:27:17,440 Ya sabemos cuál vamos a usar 652 00:27:17,440 --> 00:27:19,160 Uy, estoy en 653 00:27:19,160 --> 00:27:19,420 Sí 654 00:27:19,420 --> 00:27:24,819 Nos vamos aquí al 655 00:27:24,819 --> 00:27:28,299 Al repositorio 656 00:27:28,299 --> 00:27:29,700 Uy, qué malo, aquí 657 00:27:29,700 --> 00:27:33,059 Y ahora la palabra clave la tenemos 658 00:27:33,059 --> 00:27:34,619 Que es 659 00:27:34,619 --> 00:27:41,109 Esta 660 00:27:41,109 --> 00:27:43,890 la palabra clave 661 00:27:43,890 --> 00:27:44,490 la tenemos 662 00:27:44,490 --> 00:27:50,299 pues esta 663 00:27:50,299 --> 00:27:55,839 datavine 664 00:27:55,839 --> 00:28:04,349 lo de tools 665 00:28:04,349 --> 00:28:04,890 no lo había 666 00:28:04,890 --> 00:28:07,369 venga, vamos a probar con esta 667 00:28:07,369 --> 00:28:09,009 de axon core 668 00:28:09,009 --> 00:28:11,390 la segunda que sale, espérate 669 00:28:11,390 --> 00:28:14,269 si yo pongo esto 670 00:28:14,269 --> 00:28:26,970 no, pero esta no 671 00:28:26,970 --> 00:28:28,990 no, venga 672 00:28:28,990 --> 00:28:31,170 vamos a probar con esto primero de aquí 673 00:28:31,170 --> 00:28:33,329 y si no, pues 674 00:28:33,329 --> 00:28:34,609 vale 675 00:28:34,609 --> 00:28:43,259 es que claro 676 00:28:43,259 --> 00:28:43,819 es 677 00:28:43,819 --> 00:28:47,819 octubre, 22 de octubre 678 00:28:47,819 --> 00:28:49,579 estas cosas que hacemos, en realidad no las 679 00:28:49,579 --> 00:28:51,480 hacemos bien, o sea, tiramos por 680 00:28:51,480 --> 00:28:52,839 defecto de lo 681 00:28:52,839 --> 00:28:55,440 que se subió hace una semana 682 00:28:55,440 --> 00:28:57,400 y normalmente uno trabaja 683 00:28:57,400 --> 00:28:59,400 con arquitecturas que están ya más consolidadas 684 00:28:59,400 --> 00:29:01,319 pero bueno, vamos a probar con esto y si no, ponemos 685 00:29:01,319 --> 00:29:03,119 la dependencia que tengo yo en mis proyectos 686 00:29:03,119 --> 00:29:04,319 y ya está 687 00:29:04,319 --> 00:29:07,000 la cogí de aquí también 688 00:29:07,000 --> 00:29:10,279 Venga, vamos a lanzarnos a esto 689 00:29:10,279 --> 00:29:17,930 Ala 690 00:29:17,930 --> 00:29:31,779 Y ahora 691 00:29:31,779 --> 00:29:34,579 He cogido 692 00:29:34,579 --> 00:29:41,000 Jackson Core 693 00:29:41,000 --> 00:29:43,819 Core me suena pues al núcleo de 694 00:29:43,819 --> 00:29:48,759 Si, he cogido lo último 695 00:29:48,759 --> 00:29:50,180 Que me ha salido el Jackson Core 696 00:29:50,180 --> 00:29:55,410 No, pero porque 697 00:29:55,410 --> 00:29:59,920 No está sonando correcto 698 00:29:59,920 --> 00:30:01,440 Vale, vamos a ver que 699 00:30:01,440 --> 00:30:03,500 Dependencia nos han salido 700 00:30:03,500 --> 00:30:06,099 Jackson Core, uff 701 00:30:06,099 --> 00:30:09,380 es que esto ha cambiado mucho el nombre, es muy raro 702 00:30:09,380 --> 00:30:11,400 bueno, vamos a ver si con estas 703 00:30:11,400 --> 00:30:12,299 me vale, y si no 704 00:30:12,299 --> 00:30:14,240 habrá que seguir buscando 705 00:30:14,240 --> 00:30:23,230 recordad que si se os vuelve loco alguna vez 706 00:30:23,230 --> 00:30:25,069 insiste en sacar errores 707 00:30:25,069 --> 00:30:26,869 de que ha perdido rutas 708 00:30:26,869 --> 00:30:28,950 siempre podéis 709 00:30:28,950 --> 00:30:30,230 hacerle un 710 00:30:30,230 --> 00:30:33,430 un actualizar 711 00:30:33,430 --> 00:30:34,329 el proyecto 712 00:30:34,329 --> 00:30:35,069 ¿vale? 713 00:30:36,789 --> 00:30:39,750 ¿vale? 714 00:30:39,750 --> 00:30:42,789 porque hay veces, cuando haya tantas dependencias 715 00:30:42,789 --> 00:30:44,490 y tantos líos, hay veces que pierde 716 00:30:44,490 --> 00:30:46,170 el class path, ya se desvirtúa 717 00:30:46,170 --> 00:30:48,509 entonces actualizando 718 00:30:48,509 --> 00:30:49,569 proyecto 719 00:30:49,569 --> 00:30:51,990 con maven, actualizar proyecto 720 00:30:51,990 --> 00:30:54,269 pues las rutas rotas 721 00:30:54,269 --> 00:30:56,329 te las reconstruye, te recompila todo 722 00:30:56,329 --> 00:30:58,430 porque hay veces que salen 723 00:30:58,430 --> 00:31:00,490 cosas rojitas y dices, no tengo ni idea de donde salen 724 00:31:00,490 --> 00:31:01,470 si es que está todo bien 725 00:31:01,470 --> 00:31:02,809 está todo bien 726 00:31:02,809 --> 00:31:06,210 esos rojos que salen estando todo bien 727 00:31:06,210 --> 00:31:08,450 es porque se ha roto alguno de los 728 00:31:08,450 --> 00:31:10,130 enlaces de las librerías 729 00:31:10,130 --> 00:31:20,690 también siempre una cosa 730 00:31:20,690 --> 00:31:21,589 buena 731 00:31:21,589 --> 00:31:24,750 que en caso de desesperación cuando uno se le 732 00:31:24,750 --> 00:31:26,250 rompe todo y le empiezas a ir rojo 733 00:31:26,250 --> 00:31:28,990 cuando ya uno ha probado mil dependencias, las ha quitado 734 00:31:28,990 --> 00:31:30,869 ha probado mil cosas para que funcionen 735 00:31:30,869 --> 00:31:32,609 ha incorporado mil librerías, las ha vuelto a quitar 736 00:31:32,609 --> 00:31:34,009 llega un momento en que ya 737 00:31:34,009 --> 00:31:36,910 se ha vuelto loco 738 00:31:36,910 --> 00:31:38,309 el eclipse y ya 739 00:31:38,309 --> 00:31:40,609 no sabe ni que claspas tiene, cual no, ha roto 740 00:31:40,609 --> 00:31:42,029 algunos, en algunos ha generado 741 00:31:42,029 --> 00:31:44,289 los compilados y en otros no 742 00:31:44,289 --> 00:31:46,009 pues una cosa que 743 00:31:46,009 --> 00:31:48,210 muchas veces hace magia maravillosa 744 00:31:48,210 --> 00:31:50,089 es en proyecto 745 00:31:50,089 --> 00:31:51,569 ¿vale? 746 00:31:53,490 --> 00:31:53,930 esta 747 00:31:53,930 --> 00:31:57,519 a ver, tenemos dos cosas 748 00:31:57,519 --> 00:32:00,000 primero, caso de desesperación 749 00:32:00,000 --> 00:32:01,380 me sale rojo 750 00:32:01,380 --> 00:32:02,660 y no se debe a que 751 00:32:02,660 --> 00:32:05,279 tenga yo errores en compilación 752 00:32:05,279 --> 00:32:07,339 o que me falten dependencias, lo tengo todo 753 00:32:07,339 --> 00:32:09,579 pero aún así el eclipse me dice que le falta 754 00:32:09,579 --> 00:32:11,480 algo, eso suele deberse 755 00:32:11,480 --> 00:32:12,980 a que le falta 756 00:32:12,980 --> 00:32:16,160 a que no encuentra clases compiladas 757 00:32:16,160 --> 00:32:18,039 en algún sitio donde debería, según el 758 00:32:18,039 --> 00:32:20,000 Clashpad. Suele deberse siempre a eso. 759 00:32:20,559 --> 00:32:22,079 Él necesita una clase 760 00:32:22,079 --> 00:32:24,059 compilada, un punto clase en alguna parte 761 00:32:24,059 --> 00:32:25,819 y ya la ha perdido. Con tanto 762 00:32:25,819 --> 00:32:28,019 desmadre de incorporar, soltar, incorporar, 763 00:32:28,079 --> 00:32:29,559 soltar, ya lo ha perdido. 764 00:32:30,119 --> 00:32:31,059 Entonces, ahí conviene 765 00:32:31,059 --> 00:32:34,000 recompilar todo de nuevas para que 766 00:32:34,000 --> 00:32:35,660 todas las rutas ya se llenen 767 00:32:35,660 --> 00:32:37,299 correctamente con lo que tienen que tener. 768 00:32:37,779 --> 00:32:40,019 Bueno, pues en ese caso de desesperación, 769 00:32:40,519 --> 00:32:41,920 tanto el actualizar el 770 00:32:41,920 --> 00:32:42,700 proyecto Maven 771 00:32:42,700 --> 00:32:45,160 y aquí 772 00:32:45,160 --> 00:32:47,900 que también lo podéis hacer aquí 773 00:32:47,900 --> 00:32:49,859 con botón derecho, Maven o 774 00:32:49,859 --> 00:32:51,839 Date Project, como el 775 00:32:51,839 --> 00:32:53,299 Clean, este 776 00:32:53,299 --> 00:32:55,680 el Clean te dice, venga 777 00:32:55,680 --> 00:32:57,799 ¿qué proyecto quieres limpiar? Estoy desesperada 778 00:32:57,799 --> 00:32:58,759 quiero limpiar este 779 00:32:58,759 --> 00:33:02,059 pues te reconstruye un poquito, te recompila 780 00:33:02,059 --> 00:33:03,779 todo, te hace cosas mágicas 781 00:33:03,779 --> 00:33:05,920 y en muchas veces 782 00:33:05,920 --> 00:33:07,759 después de llevar 783 00:33:07,759 --> 00:33:09,700 varias horas diciendo, esto no tiene ningún 784 00:33:09,700 --> 00:33:11,660 sentido, pum, haces un Clean y dices 785 00:33:11,660 --> 00:33:13,819 Pero sí, ya está todo, todo arreglado 786 00:33:13,819 --> 00:33:15,180 ¿Por qué no lo habré hecho antes? 787 00:33:16,460 --> 00:33:16,680 ¿Vale? 788 00:33:17,839 --> 00:33:18,240 Bueno 789 00:33:18,240 --> 00:33:21,940 Vale, pues entonces 790 00:33:21,940 --> 00:33:23,880 Esto que me ha importado aquí 791 00:33:23,880 --> 00:33:26,019 Es que no me gusta nada, pero bueno, vamos a probar 792 00:33:26,019 --> 00:33:27,960 Igual es que la versión del 22 de octubre 793 00:33:27,960 --> 00:33:29,240 Se llama Tools y ya está 794 00:33:29,240 --> 00:33:31,700 Pero bueno, vamos a probar 795 00:33:31,700 --> 00:33:33,920 Si no, nos vamos a una anterior y listo 796 00:33:33,920 --> 00:33:36,019 Vamos a hacer un JSON 797 00:33:36,019 --> 00:33:38,119 Cualquerucho, normalucho 798 00:33:38,119 --> 00:33:40,359 Venga, a ver 799 00:33:40,359 --> 00:33:43,319 Lo podría hacer en cualquier lado 800 00:33:43,319 --> 00:33:45,619 Vamos a hacerlo en el raíz para no arrastrar la ruta 801 00:33:45,619 --> 00:33:47,039 Porque ya sabemos de memoria 802 00:33:47,039 --> 00:33:49,700 En los files 803 00:33:49,700 --> 00:33:51,279 Cómo poner la ruta para abrirlos 804 00:33:51,279 --> 00:33:52,920 Si están fuera de mi proyecto 805 00:33:52,920 --> 00:33:54,859 Entonces lo vamos a hacer aquí 806 00:33:54,859 --> 00:33:56,400 Y nos ahorramos problemas 807 00:33:56,400 --> 00:34:04,769 Pues te haces un nuevo fichero 808 00:34:04,769 --> 00:34:06,789 Te vas al raíz, nuevo fichero y ya está 809 00:34:06,789 --> 00:34:08,090 Venga 810 00:34:08,090 --> 00:34:11,650 Esta va a ser mi información 811 00:34:11,650 --> 00:34:12,929 La mía 812 00:34:12,929 --> 00:34:13,909 Yo soy mi alumno 813 00:34:13,909 --> 00:34:14,389 Pepit 814 00:34:14,389 --> 00:34:17,730 Vale 815 00:34:17,730 --> 00:34:23,000 Vale, pues esto sería 816 00:34:23,000 --> 00:34:24,659 Un JSON válido 817 00:34:24,659 --> 00:34:27,079 Porque tiene un objeto 818 00:34:27,079 --> 00:34:32,010 Y aquí, pues que 819 00:34:32,010 --> 00:34:37,929 Vale, cada uno ponga la información 820 00:34:37,929 --> 00:34:40,130 Que le dé la gana, esto es un objeto instanciado 821 00:34:40,130 --> 00:34:41,289 Vale 822 00:34:41,289 --> 00:34:46,780 Para no volvernos 823 00:34:46,780 --> 00:34:48,139 Muy locos, pues instituto 824 00:34:48,139 --> 00:34:49,500 Instituto 825 00:34:49,500 --> 00:34:51,239 Va a ser 826 00:34:51,239 --> 00:35:27,360 Y aquí este objeto mío ya se ha terminado y ahora tengo, pues por ejemplo, módulos. 827 00:35:27,739 --> 00:35:31,920 Aquí, módulos va a ser un array de objetos. 828 00:35:31,920 --> 00:35:45,300 El primero, nombre, pues acceso a datos y nota, pues un 10. 829 00:35:46,519 --> 00:35:48,219 Y otro módulo 830 00:35:48,219 --> 00:35:48,980 Tengo por ahí 831 00:35:48,980 --> 00:36:00,760 Procesos 832 00:36:00,760 --> 00:36:01,679 Procesos 833 00:36:01,679 --> 00:36:04,260 Vale 834 00:36:04,260 --> 00:36:08,860 Este es un JSON válido 835 00:36:08,860 --> 00:36:10,940 Uy, bueno, me falta la llave de cierre 836 00:36:10,940 --> 00:36:11,659 ¿Verdad que sí? 837 00:36:13,079 --> 00:36:13,480 Vale 838 00:36:13,480 --> 00:36:16,440 Este es un JSON válido que tiene un único objeto 839 00:36:16,440 --> 00:36:19,260 Pero también sería un JSON válido 840 00:36:19,260 --> 00:36:20,400 Un array 841 00:36:20,400 --> 00:36:22,559 Con muchos de estos 842 00:36:22,559 --> 00:36:23,280 ¿Vale? 843 00:36:23,280 --> 00:36:25,860 también sería un JSON 844 00:36:25,860 --> 00:36:27,519 válido, un array con muchos de estos 845 00:36:27,519 --> 00:36:29,940 y aquí no hay 846 00:36:29,940 --> 00:36:31,900 esquema, ni hay nada 847 00:36:31,900 --> 00:36:33,940 de eso, o sea, un segundín 848 00:36:33,940 --> 00:36:35,860 aquí no hay esquema, cada objeto puede ser 849 00:36:35,860 --> 00:36:38,000 de su padre, de su madre, de quien le dé la gana 850 00:36:38,000 --> 00:36:39,880 en alguno le pueden faltar 851 00:36:39,880 --> 00:36:41,900 propiedades que el otro tiene, aquí no 852 00:36:41,900 --> 00:36:43,719 hay esquemas que validar, ni hay nada 853 00:36:43,719 --> 00:36:44,760 ¿vale? dime 854 00:36:44,760 --> 00:36:49,280 ¿por qué es un array? el valor 855 00:36:49,280 --> 00:36:51,460 de la clave módulos es un array 856 00:36:51,460 --> 00:36:53,579 y un array se hace entre corchetes 857 00:36:53,579 --> 00:36:55,159 con los elementos separados por con. 858 00:36:55,699 --> 00:36:57,679 Perdón, que este sí solo tiene dos. 859 00:36:58,380 --> 00:36:59,059 Y a su vez, 860 00:36:59,639 --> 00:37:01,679 los elementos del array, yo en este caso 861 00:37:01,679 --> 00:37:03,639 he hecho que sean objetos, pero podría ser 862 00:37:03,639 --> 00:37:05,559 un valor sencillo, una cadena, 863 00:37:05,719 --> 00:37:07,239 un número, ¿vale? Dime. 864 00:37:08,320 --> 00:37:09,760 ¿Por qué hacía un corchete? 865 00:37:10,659 --> 00:37:11,960 ¿Pengo los corchetes? 866 00:37:12,480 --> 00:37:13,960 No. Ah, que me da una llave. 867 00:37:14,199 --> 00:37:16,000 Tengo la llave que me cierra este objeto, 868 00:37:16,300 --> 00:37:17,940 este corchete que me cierra 869 00:37:17,940 --> 00:37:20,099 este array, esta llave que me cierra 870 00:37:20,099 --> 00:37:21,860 el valor instituto, 871 00:37:21,860 --> 00:37:24,019 No, pero está cerrada por la llave de en medio 872 00:37:24,019 --> 00:37:25,840 La de la coma 873 00:37:25,840 --> 00:37:28,800 El de nombre localidad 874 00:37:28,800 --> 00:37:29,579 En el medio 875 00:37:29,579 --> 00:37:32,539 A ver, que lo mire aquí 876 00:37:32,539 --> 00:37:34,099 Que ahí no veo nada, vamos a ver 877 00:37:34,099 --> 00:37:35,960 A ver 878 00:37:35,960 --> 00:37:38,000 Instituto 879 00:37:38,000 --> 00:37:40,739 Ah, vale, vale 880 00:37:40,739 --> 00:37:42,360 Que los módulos no están dentro del instituto 881 00:37:42,360 --> 00:37:43,059 Vale, vale, vale 882 00:37:43,059 --> 00:37:45,039 Entonces, el array 883 00:37:45,039 --> 00:37:48,440 Se cierra aquí, con lo cual este objeto 884 00:37:48,440 --> 00:37:49,719 Esta llave sobra, vale 885 00:37:49,719 --> 00:38:22,260 Vale. Bueno, pues este es mi JSON. Pues, entonces, aquí lo normal, lógicamente, es trabajar con un modelo de objetos. No es necesario. Jackson puede parsear esto a object o a map de object y tú vas sacando de ahí. 886 00:38:22,260 --> 00:38:25,400 Pero no es la forma de trabajo habitual 887 00:38:25,400 --> 00:38:26,119 O sea, esto lo podría 888 00:38:26,119 --> 00:38:27,780 Parsear a un map 889 00:38:27,780 --> 00:38:31,079 Porque son pares clave de valor 890 00:38:31,079 --> 00:38:32,139 A un map de object 891 00:38:32,139 --> 00:38:34,280 ¿Vale? 892 00:38:34,599 --> 00:38:36,800 Lo podría parsear a un map 893 00:38:36,800 --> 00:38:39,019 De string object, perdón 894 00:38:39,019 --> 00:38:41,340 Esto se podría parsear a un map 895 00:38:41,340 --> 00:38:42,159 Directamente 896 00:38:42,159 --> 00:38:44,659 Donde los elementos del map serían 897 00:38:44,659 --> 00:38:47,260 Clave nombre, el object valor esto 898 00:38:47,260 --> 00:38:49,659 Clave instituto, el object 899 00:38:49,659 --> 00:38:50,739 Valor todo esto 900 00:38:50,739 --> 00:38:53,019 es decir, el map sería de string 901 00:38:53,019 --> 00:38:54,920 object, donde cada 902 00:38:54,920 --> 00:38:56,619 object sería cualquier cosa 903 00:38:56,619 --> 00:38:58,199 aquí sería una lista 904 00:38:58,199 --> 00:39:00,920 de elementos, aquí sería un objeto 905 00:39:00,920 --> 00:39:02,139 aquí sería un string 906 00:39:02,139 --> 00:39:04,800 pero bueno, parsear a map 907 00:39:04,800 --> 00:39:06,940 object, ir entrando en el 908 00:39:06,940 --> 00:39:08,639 object para ir haciendo casting 909 00:39:08,639 --> 00:39:10,739 en función de lo que sea, pues bueno, es la forma 910 00:39:10,739 --> 00:39:12,519 de trabajo habitual 911 00:39:12,519 --> 00:39:14,739 no vamos a entrar por ahí, ¿vale? pero bueno 912 00:39:14,739 --> 00:39:16,800 podríamos directamente no tener 913 00:39:16,800 --> 00:39:18,900 ningún modelo en nuestra aplicación 914 00:39:18,900 --> 00:39:20,219 pero vamos a hacerlo en modelo 915 00:39:20,219 --> 00:39:53,980 Vamos a hacerle un modelo. Entonces, el modelo aquí implicaría que yo tengo mi clase alumno. Y aquí en el modelo yo tendría mi clase alumno y mi clase alumno pues tendría sus propiedades string nombre e instituto, instituto. 916 00:39:53,980 --> 00:40:17,440 Y tendría también el que 917 00:40:17,440 --> 00:40:18,900 Pues una lista 918 00:40:18,900 --> 00:40:23,320 De módulos 919 00:40:23,320 --> 00:40:25,739 ¿Verdad? Instituto y una lista 920 00:40:25,739 --> 00:40:27,000 De módulos 921 00:40:27,000 --> 00:40:40,639 Getter y setter, por ahora dejamos 922 00:40:40,639 --> 00:40:43,340 Constructores, tu string, todo eso por ser rápidos 923 00:40:43,340 --> 00:40:44,840 Si nos hacen falta 924 00:40:44,840 --> 00:40:46,019 Más adelante los ponemos 925 00:40:46,019 --> 00:40:47,019 ¿Vale? 926 00:40:48,239 --> 00:40:48,639 Dime 927 00:40:48,639 --> 00:40:52,320 Nada que te quede directamente 928 00:40:52,320 --> 00:40:53,059 El punto JSON 929 00:40:53,059 --> 00:40:59,690 Dentro de la distribución JDK 930 00:40:59,690 --> 00:41:01,190 Que no sea a través de una dependencia 931 00:41:01,190 --> 00:41:03,150 Como JSON, FasterXML 932 00:41:03,150 --> 00:41:04,670 Porque lo que vamos a hacer ahora 933 00:41:04,670 --> 00:41:05,650 Es precisamente lo que me estás diciendo 934 00:41:05,650 --> 00:41:06,309 Pero con Jackson 935 00:41:06,309 --> 00:41:07,170 Claro, pero me refiero 936 00:41:07,170 --> 00:41:08,349 Tú haces un objeto 937 00:41:08,349 --> 00:41:11,269 Y tienes un método 938 00:41:11,269 --> 00:41:14,269 Y ese método te crea un JSON 939 00:41:14,269 --> 00:41:15,110 Básicamente 940 00:41:15,110 --> 00:41:17,670 A ver 941 00:41:17,670 --> 00:41:19,449 Tú tienes un objeto 942 00:41:19,449 --> 00:41:21,050 Para que ese objeto tenga un método 943 00:41:21,050 --> 00:41:22,510 Tienes que haberlo metido ahí 944 00:41:22,510 --> 00:41:23,190 O ser de object 945 00:41:23,190 --> 00:41:24,010 ¿No? 946 00:41:24,010 --> 00:41:26,050 Entonces tú puedes hacer ahí un método 947 00:41:26,050 --> 00:41:27,030 Pero dentro de ese método 948 00:41:27,030 --> 00:41:29,469 Tendrás que llamar a Jackson para hacer eso 949 00:41:29,469 --> 00:41:31,949 O sea, Jackson tiene un método que te coge un objeto 950 00:41:31,949 --> 00:41:32,769 Y te lo pasa a Jason 951 00:41:32,769 --> 00:41:34,989 Pero lo tiene Jackson 952 00:41:34,989 --> 00:41:37,050 Este objeto alumno 953 00:41:37,050 --> 00:41:39,949 Solo tiene lo que tú le pongas ahí o lo he heredado de object 954 00:41:39,949 --> 00:41:41,969 Y no hereda nada de object 955 00:41:41,969 --> 00:41:49,380 Jackson 956 00:41:49,380 --> 00:41:52,039 Jackson o Jason 957 00:41:52,039 --> 00:41:53,559 Son todos los frameworks que hay 958 00:41:53,559 --> 00:41:54,559 Que lo hacen 959 00:41:54,559 --> 00:42:00,000 Si te refieres a si el JDK 960 00:42:00,000 --> 00:42:01,920 Te trae ya algo que integre eso 961 00:42:01,920 --> 00:42:04,539 O sea, lo tienes 962 00:42:04,539 --> 00:42:07,059 O usas Jackson, o usas Gison 963 00:42:07,059 --> 00:42:09,260 O usas otras librerías que hay 964 00:42:09,260 --> 00:42:17,079 A ver, paramos un segundín