Skip to content

Commit c52a8b0

Browse files
committed
Corrige información sobre writer
1 parent 779917e commit c52a8b0

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

source/02.formatos/02.json/01.jackson.rst

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -567,12 +567,16 @@ más información referente a los alumnos:
567567
}
568568
569569
Los datos de los alumnos no tienen la misma confidencialidad, así que nos podría
570-
interesar proporcionar más o menos información. Para ello se definen tres
571-
*vistas* de menor a mayor confidencialidad:
570+
interesar proporcionar más o menos información. Para ello primero tenemos que
571+
definir nosotros varias vistas de menor a mayor confidencialidad:
572572

573-
+ Views.Public
574-
+ Views.Internal
575-
+ Views.Admin
573+
.. code-block:: java
574+
575+
public class Views {
576+
public static class Public {} /* Menos confidencial */
577+
public static class Private extends Public {}
578+
public static class Internal extends Private {} /* Más confidencial */
579+
}
576580
577581
Al anotar la clase podemos indicar a qué vista queremos que pertenezca el
578582
atributo:
@@ -584,23 +588,23 @@ atributo:
584588
@JsonView(Views.Public.class)
585589
private String nombre;
586590
587-
// No pertenece a ninguna vista así que se muestra siempre.
591+
// Sin vista sólo se mostrará cuando no se activa ninguna vista.
588592
private LocalDate fechaNacimiento;
589593
590-
@JsonView(Views.Internal.class)
594+
@JsonView(Views.Private.class)
591595
private int telefono;
592596
593-
@JsonView(Views.Admin.class)
597+
@JsonView(Views.Internal.class)
594598
private String dni;
595599
}
596600
597601
Definida la *vista* de cada atributo, en el momento de serializar podemos
598602
indicar al objeto |ObjectWriter| qué vista debe escribir. En nuestro ejemplo:
599603

600-
+ Sin vista, sólo se serializará sólo ``fechaNacimiento``.
601-
+ Con Views.Public se serializará ``fechaNacimiento`` y ``nombre``.
602-
+ Con Views.Internal se añadirá a las anteriores el teléfono.
603-
+ Con Views.Admin se serializarán todos los atributos.
604+
+ Sin vista, sólo se serializará ``fechaNacimiento``\ [#]_.
605+
+ Con ``Views.Public`` se serializará ``nombre``.
606+
+ Con ``Views.Private`` se añadirá ``telefono``
607+
+ Con ``Views.Internal`` se serializarán todos los asociados a vista.
604608

605609
Para escribir con vistas, simplemente, debemos crear un *writer* y ajustar la
606610
vista:
@@ -658,6 +662,11 @@ El otro mecanismo para filtrar atributos es usar **filtros**:
658662
De hecho, la traducción a tiempo *UNIX* era el comportamiento predeterminado
659663
en *Jackson 2*.
660664
665+
.. [#] En realidad, el comportamiento depende de
666+
:jackson-databind:`MapperFeature.DEFAULT_VIEW_INCLUSION <MapperFeature>`. Por
667+
defecto está a ``false``. Si estuviera a ``true`` siempre los atributos no
668+
asociados a ninguna vista, se mostrarían en cualquier vista.
669+
661670
.. |JSON| replace:: :abbr:`JSON (JavaScript Object Notation)`
662671
.. |Date| replace:: :java-util:`Date <Date>`
663672
.. |LocalDate| replace:: :java-time:`LocalDate <LocalDate>`

source/04.conector/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Conectores
44
**********
55
Las bases de datos relacionales son unos de los soportes más utilizados para
66
el almacenamiento organizado de información. Su problema, al ser accedidas
7-
mediante aplicaciones, es que basan su estructrura en el modelo relacional, que
7+
mediante aplicaciones, es que basan su estructura en el modelo relacional, que
88
no es el modelo que usan los lenguajes de programación para manejar datos. En
99
concreto, los más habituales, los lenguajes de |POO| manejan los datos haciendo
1010
uso del modelo de objetos, por lo que existe una discrepación entre el modo en

0 commit comments

Comments
 (0)