Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Manual de JSON
Formatos ligeros de intercambio de datos en
aplicaciones web
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - S...
Guión
1. Introducción
2. Estructuras
3. Formas de representación
A. Clases
B. Propiedades
C. Arrays
4. Configuración e Ini...
Parte teórica
www.JSON.org
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
INTRODUCCIÓN – EL
PROBLEMA
 Los desarrolladores necesitan enviar y recibir datos de manera
sencilla pero utilizando un fo...
INTRODUCCIÓN – UNA
SOLUCIÓN
JSON (JavaScript Object Notation - Subconjunto ECMAScript)
 Formato ligero de intercambio de ...
INTRODUCCIÓN – JSON
 JSON :
 Independiente de un lenguaje específico
 Basado en texto
 De Formato ligero
 Fácil de pa...
INTRODUCCIÓN – JSON
 Lenguajes que lo soportan:
 ActionScript
 C / C++
 .NET (C#, VB.NET…)
 Delphi
 Java
 JavaScrip...
FORMAS DE
REPRESENTACION
 Sirve para representar objetos en el lado de cliente, normalmente
en aplicaciones RIA (Rich Int...
FORMAS DE
REPRESENTACION
Descripción simplificada Ejemplo
FORMA DE OBJECT /
CLASE
 Es un conjunto de propiedades , cada una con su valor
 Notación
 Empieza con una llave de aper...
FORMA DE OBJECT /
CLASE
[
{
“country”: “New Zealand”,
“population”: 3993817,
“animals”: [“sheep”, “kiwi”]
},
{
“country”: ...
FORMA DE ARRAY
 Colección ordenada de valores u objetos
 Notación
 Empieza con un corchete izquierdo [
 Termina con un...
FORMA DE ARRAY
[
{
“country”: “New Zealand”,
“population”: 3993817,
“animals”: [“sheep”, “kiwi”]
} ,
{
“country”: “Singapo...
FORMA DE VALUE
 Puede ser
 Una cadena de caracteres con comillas dobles
 Un número
 True, false, null
 Un objeto
 Un...
FORMA DE STRING
 Colección de cero a mas caracteres Unicode encerrados entre
comillas dobles
 Los caracteres de escape u...
FORMA DE NUMBER
 Similar a los numeros de C o Java
 No usa formato octal o hexadecimal
 No puede ser NaN o Infinity, en...
CODIFICACIÓN DE
CARACTERES
 Estrictamente UNICODE
 Por defecto es UTF-8
 UTF-16 y UTF-32 también estan permitidos.
FORMA DE VALUE
[
{
“country”: “New Zealand”,
“population”: 3993817,
“animals”: [“sheep”, “kiwi”]
} ,
{
“country”: “Singapo...
OTRAS FORMAS
 Boolean -> true / false
 null
JSON vs XML ( CLASE )
...
<persona>
<nombre>Juan</nombre>
<apellidos>Palomo</apellidos>
<fecha>10/10/1980</fecha>
</person...
JSON vs XML (
SIMILITUDES )
 Ambos son legibles por los humanos
 Tienen una sintaxis muy simple
 Son jerárquicos
 Son ...
JSON vs XML (
DIFERENCIAS )
 Sintáxis dispar
 JSON
 Es más compacto
 Puede ser parseado usando el método eval() de Jav...
JSON vs XML ( ARRAYS )
...
<listado>
<persona>
<nombre>Juan</nombre>
<apellidos>Palomo</apellidos>
<fecha>10/10/1980</fech...
YAML
 Acrónimo de Yet Another Markup LanguageArray
 Es un subconjunto de JSON, con más capacidades
 Listas, casting, et...
JSON - UTILIZACIÓN
 Mediante Librerias ( Por ejemplo en JavaScript )
 Transformación de cadenas de texto a objetos
 Tra...
JSON – ECMAScript 4ta
EDICIÓN
 Define los siguientes métodos
 toJSONString
 Object, Array, Date, Boolean, Number, Strin...
JSON – Ejemplo parseJSON
<script src=“json.js“ />
<script>
var myData = '{"fecha":"mivalorfecha","numero":85}'.parseJSON()...
JSON – Ejemplo parseJSON
<script src=“json.js“ />
<script>
myData = JSON.parse(text, function (key, value) {
var type;
if ...
JSON – Ejemplo JSON.parse
<script src=“json.js“ />
<script>
var myData = JSON.parse(‘{"fecha":"mivalorfecha","numero":85}’...
JSON – EJEMPLO - SUPPLANT
var template = '<table border="{border}">' +
'<tr><th>Last</th><td>{last}</td></tr>' +
'<tr><th>...
JSON – EJEMPLO - SUPPLANT
String.prototype.supplant = function (o) {
return this.replace(/{([^{}]*)}/g,
function (a, b) {
...
GSON
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
GSON
 Librería para convertir objetos Java a JSON y vice-versa.
 http://sites.google.com/site/gson/Home
 http://code.go...
GSON
class BagOfPrimitives {
private int value1 = 1;
private String value2 = "abc";
private transient int value3 = 3;
}
Cl...
GSON
 Personalización de la serialización y deserialización.
GsonBuilder gson = new GsonBuilder();
gson.registerTypeAdapt...
GSON
 Personalización de la serialización (cuando se llama al método
toJson() ).
private class DateTimeSerializer impleme...
GSON
 Personalización de la deserialización (cuando se llama al
método fromJson() ).
private class DateTimeDeserializer i...
GSON
 Personalización de la deserialización de una instancia ( se
puede usar para clases que no tengan constructor sin
ar...
Frameworks cliente
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
FRAMEWORKS CLIENTE
 Actualmente existen frameworks que utilizan de forma nativa
JSON para presentar y tratar la informaci...
YUI (Yahoo User Interface)
 Da soporte nativo para JSON como fuente de datos para sus
diversos componentes (pueden repres...
JQUERY
 Puede recuperar datos en formato JSON
 API
 jQuery.parseJSON( json )
 jQuery.getJSON( url, [ data ], [ callbac...
EXTJS
 Puede recuperar datos en formato JSON
 API
 Ext.Ajax.request ( … )
 Ext.decode (objServerResponse.responseText);
Servicios Web
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
SERVICIOS WEB
 Cualquier aplicación puede consumir los servicios web de
Yahoo y Google pudiendo recibir la respuesta en f...
NoSQL
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
NoSQL
 Este término se refiere a bases de datos “no relacionales” que
no dan garantías ACID, su característica que más ll...
Visor
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
VISOR DE OBJETOS JSON
 Hace algún tiempo construí una herramienta visual (visor de objetos)
construida con JavaScript, pa...
Conclusiones
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://emmersonmiranda.blogspot.com/
CONCLUSIONES
 Formato de intercambio de datos, potente, flexible y sobre todo ligero para
intercambiar datos vía HTTP.
 ...
- FIN -
Licensed under Creative Commons Attribution 3
Emmerson Miranda
SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5
Blog : http://em...
Upcoming SlideShare
Loading in …5
×

Json short manual

32,055 views

Published on

  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Json short manual

  1. 1. Manual de JSON Formatos ligeros de intercambio de datos en aplicaciones web Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/ Licensed under Creative Commons Attribution 3
  2. 2. Guión 1. Introducción 2. Estructuras 3. Formas de representación A. Clases B. Propiedades C. Arrays 4. Configuración e Inicialización 5. Utilización A. eval B. Prototipe  YAML  Librería JSON  GSON  Frameworks del lado cliente  Servicios web  NoSQL JSON Entorno
  3. 3. Parte teórica www.JSON.org Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  4. 4. INTRODUCCIÓN – EL PROBLEMA  Los desarrolladores necesitan enviar y recibir datos de manera sencilla pero utilizando un formato común para estructuras complejas.  Se han desarrollado muchas soluciones ad-hoc donde se separan un conjunto de valores separados por comas, puntos y comas u otros separadores pero de serialización y des- serialización complicadas.  Hay que evitar tener que construir parsers cada vez que queremos intercambiar mensajes con el servidor.  XML es opción válida pero no la más adecuada por ser demasiada pesada.
  5. 5. INTRODUCCIÓN – UNA SOLUCIÓN JSON (JavaScript Object Notation - Subconjunto ECMAScript)  Formato ligero de intercambio de datos independiente de cualquier lenguaje de programación  Tiene forma de texto plano, de simple de lectura, escritura y generación  Ocupa menos espacio que el formato XML  No es necesario que se construyan parsers personalizados
  6. 6. INTRODUCCIÓN – JSON  JSON :  Independiente de un lenguaje específico  Basado en texto  De Formato ligero  Fácil de parsear  NO Define funciones  NO tiene estructuras invisibles  NO tiene espacios de nombres (Namespaces)  NO tiene validator  NO es extensible  Su tipo MIME es -> application/json
  7. 7. INTRODUCCIÓN – JSON  Lenguajes que lo soportan:  ActionScript  C / C++  .NET (C#, VB.NET…)  Delphi  Java  JavaScript  Perl  PHP  Python  Ruby  Etc…
  8. 8. FORMAS DE REPRESENTACION  Sirve para representar objetos en el lado de cliente, normalmente en aplicaciones RIA (Rich Internet Application) que utilizan JavaScript.  Object.- Conjunto desordenado de pares nombre/valor  Array.- Colección ordenada de valores  Value.- Puede ser un string, número, booleano, objeto u array  String.- Colección de cero o más caracteres unicode.  Number.- Valor numérico sin comillas
  9. 9. FORMAS DE REPRESENTACION Descripción simplificada Ejemplo
  10. 10. FORMA DE OBJECT / CLASE  Es un conjunto de propiedades , cada una con su valor  Notación  Empieza con una llave de apertura {  Terminan con una llave de cierre }  Sus propiedades  Se separan con comas  El nombre y el valor estan separados por dos puntos :
  11. 11. FORMA DE OBJECT / CLASE [ { “country”: “New Zealand”, “population”: 3993817, “animals”: [“sheep”, “kiwi”] }, { “country”: “Singapore”, “population”: 4353893, “animals”: [“merlion”, “tiger”] } ]
  12. 12. FORMA DE ARRAY  Colección ordenada de valores u objetos  Notación  Empieza con un corchete izquierdo [  Termina con un corchete derecho ]  Los valores se separan con una coma ,
  13. 13. FORMA DE ARRAY [ { “country”: “New Zealand”, “population”: 3993817, “animals”: [“sheep”, “kiwi”] } , { “country”: “Singapore”, “population”: 4353893, “animals”: [“merlion”, “tiger”] } ]
  14. 14. FORMA DE VALUE  Puede ser  Una cadena de caracteres con comillas dobles  Un número  True, false, null  Un objeto  Un array
  15. 15. FORMA DE STRING  Colección de cero a mas caracteres Unicode encerrados entre comillas dobles  Los caracteres de escape utilizan la barra invertida  Es parecida a una cadena de caracteres en C o Java.
  16. 16. FORMA DE NUMBER  Similar a los numeros de C o Java  No usa formato octal o hexadecimal  No puede ser NaN o Infinity, en su lugar se usa null.  Puede representar  Integer  Real  Scientific
  17. 17. CODIFICACIÓN DE CARACTERES  Estrictamente UNICODE  Por defecto es UTF-8  UTF-16 y UTF-32 también estan permitidos.
  18. 18. FORMA DE VALUE [ { “country”: “New Zealand”, “population”: 3993817, “animals”: [“sheep”, “kiwi”] } , { “country”: “Singapore”, “population”: 4353893, “animals”: [“merlion”, “tiger”] } ] String Number Array Objeto
  19. 19. OTRAS FORMAS  Boolean -> true / false  null
  20. 20. JSON vs XML ( CLASE ) ... <persona> <nombre>Juan</nombre> <apellidos>Palomo</apellidos> <fecha>10/10/1980</fecha> </persona> ... var myJSONObject = { "nombre": "Juan", "apellidos": "Palomo", "fecha": "10/10/1980" }; XML JSON
  21. 21. JSON vs XML ( SIMILITUDES )  Ambos son legibles por los humanos  Tienen una sintaxis muy simple  Son jerárquicos  Son independientes del lenguaje de programación  Se pueden usar empleando Ajax
  22. 22. JSON vs XML ( DIFERENCIAS )  Sintáxis dispar  JSON  Es más compacto  Puede ser parseado usando el método eval() de JavaScript  Puede incluir Arrays  Los nombres de las propiedades no pueden ser palabras reservadas de JavaScript  XML  Los nombres son mas extensos  Puede ser validado bajo un conjunto de reglas  JavaScript es normalmente utilizado en el lado cliente.
  23. 23. JSON vs XML ( ARRAYS ) ... <listado> <persona> <nombre>Juan</nombre> <apellidos>Palomo</apellidos> <fecha>10/10/1980</fecha> </persona> <persona> <nombre>Juan</nombre> <apellidos>Palomo</apellidos> <fecha>10/10/1980</fecha> </persona> </listado> ... ... var myJSONObject = {"listado": [ { "nombre": "Juan", "apellidos": "Palomo", "fecha": "10/10/1980" }, { "nombre": "Juan", "apellidos": "Palomo", "fecha": "10/10/1980" } ] }; ... XML JSON
  24. 24. YAML  Acrónimo de Yet Another Markup LanguageArray  Es un subconjunto de JSON, con más capacidades  Listas, casting, etc  No maneja caracteres unicode de escape  JSON puede ser parseado por los parsers de YAML  Hay que tenerlo en cuenta cuando JSON no sea suficiente para nuestras necesidades.
  25. 25. JSON - UTILIZACIÓN  Mediante Librerias ( Por ejemplo en JavaScript )  Transformación de cadenas de texto a objetos  Transformación de objetos a cadenas de texto  Personalización de las transformaciones
  26. 26. JSON – ECMAScript 4ta EDICIÓN  Define los siguientes métodos  toJSONString  Object, Array, Date, Boolean, Number, String  parseJSON  String  JSON.parse  JSON.stringify  Estos están disponibles en : www.json.org/json.js
  27. 27. JSON – Ejemplo parseJSON <script src=“json.js“ /> <script> var myData = '{"fecha":"mivalorfecha","numero":85}'.parseJSON(); alert( myData.fecha); alert( myData.numero); </script>
  28. 28. JSON – Ejemplo parseJSON <script src=“json.js“ /> <script> myData = JSON.parse(text, function (key, value) { var type; if (value && typeof value === 'object') { type = value.type; if (typeof type === 'string' && typeof window[type] === 'function') { return new (window[type])(value); } } return value; } ); </script>
  29. 29. JSON – Ejemplo JSON.parse <script src=“json.js“ /> <script> var myData = JSON.parse(‘{"fecha":"mivalorfecha","numero":85}’, function (key, value) { return value; } ); alert( myData.fecha); alert( myData.numero); </script>
  30. 30. JSON – EJEMPLO - SUPPLANT var template = '<table border="{border}">' + '<tr><th>Last</th><td>{last}</td></tr>' + '<tr><th>First</th><td>{first}</td></tr>' + '</table>'; var data = { "first": "Carl", "last": "Hollywood", "border": 2 }; mydiv.innerHTML = template.supplant(data);
  31. 31. JSON – EJEMPLO - SUPPLANT String.prototype.supplant = function (o) { return this.replace(/{([^{}]*)}/g, function (a, b) { var r = o[b]; return typeof r === 'string' ? r : a; } ); };
  32. 32. GSON Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  33. 33. GSON  Librería para convertir objetos Java a JSON y vice-versa.  http://sites.google.com/site/gson/Home  http://code.google.com/p/google-gson  Objetivos  Proporcionar mecanismos sencillos para convertir los objetos  Dar capacidad de utilizar representaciones personalizadas de objetos.
  34. 34. GSON class BagOfPrimitives { private int value1 = 1; private String value2 = "abc"; private transient int value3 = 3; } Clase personalizada  Ejemplo BagOfPrimitives obj = new BagOfPrimitives(); Gson gson = new Gson(); String json = gson.toJson(obj); ==> {"value1":1,"value2":"abc"} Serialización BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class); ==> obj2 is just like obj Deserialización
  35. 35. GSON  Personalización de la serialización y deserialización. GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(MyType.class, new MySerializer()); gson.registerDeserializer(MyType.class, new MyDeserializer()); gson.registerInstanceCreator(MyType.class, new MyInstanceCreator());
  36. 36. GSON  Personalización de la serialización (cuando se llama al método toJson() ). private class DateTimeSerializer implements JsonSerializer<DateTime> { public JsonElement serialize(DateTime src, Type typeOfSrc, JsonSerializationContext context){ new JsonPrimitive(src.toString()); } }
  37. 37. GSON  Personalización de la deserialización (cuando se llama al método fromJson() ). private class DateTimeDeserializer implements JsonDeserializer<DateTime> { public DateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { return new DateTime(json.getAsJsonPrimitive().getAsString()); } }
  38. 38. GSON  Personalización de la deserialización de una instancia ( se puede usar para clases que no tengan constructor sin argumentos) private class MoneyInstanceCreator implements InstanceCreator<Money> { public Money createInstance(Type type) { return new Money("1000000", CurrencyCode.USD); } }
  39. 39. Frameworks cliente Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  40. 40. FRAMEWORKS CLIENTE  Actualmente existen frameworks que utilizan de forma nativa JSON para presentar y tratar la información proviniente del servidor.  YUI (Yahoo User Interface)  Dojo  jQuery  Extjs  Otros toolkits Ajax.
  41. 41. YUI (Yahoo User Interface)  Da soporte nativo para JSON como fuente de datos para sus diversos componentes (pueden representar los datos visualmente sin ningún proceso previo).  API: YAHOO.lang.JSON  dateToString( objDate )  isValid ( strJson )  parse ( strJson [, filter function(key, value) ] )  stringify ( objeto [, whitelist [, depthLimit] ] )  stringToDate ( strJsonUTC )
  42. 42. JQUERY  Puede recuperar datos en formato JSON  API  jQuery.parseJSON( json )  jQuery.getJSON( url, [ data ], [ callback(data, textStatus, xhr) ] )
  43. 43. EXTJS  Puede recuperar datos en formato JSON  API  Ext.Ajax.request ( … )  Ext.decode (objServerResponse.responseText);
  44. 44. Servicios Web Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  45. 45. SERVICIOS WEB  Cualquier aplicación puede consumir los servicios web de Yahoo y Google pudiendo recibir la respuesta en formato JSON. <script> function listEvents(root) { …. } function ws_results(obj) { ….. } </script> <script src="http://www.google.com/calendar/feeds/developer- calendar@google.com/public/full?alt=json-in-script&callback=listEvents"> </script> <script src="http://search.yahooapis.com/ImageSearchService/V1/ imageSearch?appid=YahooDemo&query=Madonna&output=json&callback=w s_results"></script>
  46. 46. NoSQL Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  47. 47. NoSQL  Este término se refiere a bases de datos “no relacionales” que no dan garantías ACID, su característica que más llama la atención es que no existen esquemas de tablas predefinidos.  Algunas de las bases de datos que exponen sus datos mediante JSON/BSON son:  CouchDB  MongoDB  RavenDB  Riak  Keyspace  Pincaster  Sones
  48. 48. Visor Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  49. 49. VISOR DE OBJETOS JSON  Hace algún tiempo construí una herramienta visual (visor de objetos) construida con JavaScript, para ver la representación gráfica de las estructuras definidas en formato JSON.  http://emmerson-miranda.appspot.com/Proyectos/json/MostrarElementos/MostrarElementos.html
  50. 50. Conclusiones Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/
  51. 51. CONCLUSIONES  Formato de intercambio de datos, potente, flexible y sobre todo ligero para intercambiar datos vía HTTP.  Independiente de cualquier lenguaje de programación.  Es soportado por los principales lenguajes del lado servidor  Java, .Net, PHP (pueden serializar y deserializar objetos en formato JSON)  Ideal para construir aplicaciones RIA con frameworks JavaScript  Ej.: YUI  Existen diferentes bases de datos NoSQL que guardan sus datos en formato JSON plano o binario (BSON)
  52. 52. - FIN - Licensed under Creative Commons Attribution 3 Emmerson Miranda SCJP 1.5 - SCWCD J2EE 1.5 - SCEA 5 Blog : http://emmersonmiranda.blogspot.com/

×