JSON (JavaScript Object Notation) en Delphi

JSON estĆ” constituido por dos estructuras:
- Una colecciĆ³n de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un array asociativo.
- Una lista ordenada de valores. En la mayorĆa de los lenguajes, esto se implementa como arreglos, vectores, listas o secuencia.
Estas son estructuras universales; virtualmente todos los lenguajes de programaciĆ³n las soportan de una forma u otra. Cada vez hay mĆ”s soporte de JSON mediante el uso de paquetes escritos por terceras partes. La lista de lenguajes soportados incluye ActionScript, C, C#, ColdFusion, Common Lisp, Delphi, E, Eiffel, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, y Lua.
En la web oficial de JSON, json.org, podemos encontrar toda la lista de lenguajes que incorporan JSON. En este caso, yo voy a mostrar un ejemplo de la JSON Delphi Library. En esta librerĆa Open Source, podemos encontrar el desarrollo de JSON y varios proyectos de ejemplo para que podamos ver su configuraciĆ³n y utilizaciĆ³n. AdemĆ”s, en la web de json.org, tambiĆ©n nos hablan de 2 proyectos mĆ”s para delphi, JSON Super Objects, y uJson.
Si analizamos el ejemplo, lo veremos un poco mƔs claro:
Como podemos ver, la cadena de texto formada por :
Si analizamos el ejemplo, lo veremos un poco mƔs claro:
program sample3;
{$APPTYPE CONSOLE}
uses
variants,
SysUtils,
uLkJSON in 'uLkJSON.pas';
var
js,xs:TlkJSONobject;
ws: TlkJSONstring;
s,s2, s1, s3: String;
begin
s := '{"\"string1\"":"123","\"string2\"":"5676","\"string3\"":"test",'+
'"childobject":{"objstr1":"Oone","objstr2":"Otwo","objstr3":"Othree"}}';
js := TlkJSON.ParseText(s) as TlkJSONobject;
s1 := vartostr(js.Field['"string1"'].Value);
writeln(s1);
s2 := vartostr(js.Field['"string2"'].Value);
writeln(s2);
s3 := vartostr(js.Field['"string3"'].Value);
writeln(s3);
readln;
js.Free;
end.
Como podemos ver, la cadena de texto formada por :
s := '{"\"string1\"":"123","\"string2\"":"5676","\"string3"":"test",'+"childobject":"objstr1":"Oone",
"objstr2":"Otwo","objstr3":"Othree"}}';
JSON con PHP."objstr2":"Otwo","objstr3":"Othree"}}';
hace algo parecido a las regular expresions de mi anterior post. Luego el protocolo JSON, parsea el texto en busca de las keywords que tiene definidas, y de esta manera obtiene los registros string1, 2 y 3. La salida por pantalla de programa:
AdemĆ”s, como he indicado antes, al ser ideal para el intercambio de datos, tenemos el protocolo JSON RPC (Llamada de procedimiento remoto con JSON). Hace varios meses, colguĆ© un post sobre XML-RPC que utiliza XML para realizar la llamada de procedimiento remoto. Ahora con json, tendrĆamos que mirar si el funcionamiento puede mejorar en vez de utilizar el XML.

- Enlaces de interƩs:
Comments
Post a Comment