Lawnchair: ‘base de datos’ clave-valor en Javascript

Lawnchair es una base de datos documental basada en JSON y que funciona en el cliente (Javascript). Puede venir muy bien para desarrollo de aplicaciones para móviles. Es muy fácl de usar y permite operaciones de escritura, lectura, búsqueda y eliminación.

var people = new Lawnchair('people');
// Saving a document async
people.save({name:'frank'}, function(r) {
    console.log(r);
});
// Specifying your own key
people.save({key:'whatever', name:'dracula'});

Lawnchair

Geolocalización por IP mediante Javascript y JSON

Sencillo script que nos devuelve un JSON con la geolocalización según la IP, usando los datos sacados de iplocationtools.com:

function getLocation(){
script = document.createElement('script')
script.src = 'http://www.nitinh.com/ip_query.php?callback=initialize'
document.body.appendChild(script)
}
function initialize(obj){
document.getElementById('spanLocation').innerHTML = obj['City'] + ', ' + obj['RegionName'] + ', ' + obj['CountryName'];
}

IP Address Geolocation Javascript API : JSON

Vía / korayem

Taffy DB: usar JSON de forma similar a SQL

Interesante librería que nos permite acceder a datos JSON mediante una nomenclatura parecida a SQL. Así cuando desarrollemos una capa de Ajax podemos buscar entre los datos, o modificarlos mediante esta librería.

Unos ejemplos de uso serían los siguientes:

products.find({price:{lessthan:10},
type:{not:"Book"}});
friends.insert(
{name:"Brian",
gender:"M",
married:"No",
age:52,
state:"FL",
favorite_foods:["fruit","steak"]
});

Esta librería nos permite en sus 10K hacer consultas, insertar, borrar y actualizar datos, ordenar, realizar bucles, queries avanzadas, ordenar los datos y a parte es compatible con YUI, JQuery, Dojo, Prototype y EXT.

Taffy DB

Vía / AjaxLine

JsonSQL: consultas SQL sobre JSON

JsonSQL es una librería Javascript que nos permite realizar consultas sobre variables con formato JSON, mediante sintaxis SQL.

Por ahora solo está permitido las consultas SELECT y la verdad es que tiene bastantes limitaciones:

  • No admite espacios entre listas tipo “select campo1,campo2,campo3” o “limit 0,10”
  • Las condiciones en el WHERE serán condiciones Javascript y no SQL
  • La documentación es escasa y parece que no admite alias, joins, count o group by

Un ejemplo de consulta sería el siguiente:

sonsql.query("select title,url from json.channel.items where (category=='javascript' || category=='vista') order by title,category asc limit 3",json);

Una librería parecida y más completa es TrimQuery, de la cual ya hablamos hace tiempo. De todas formas, recomiendo no usar este tipo de librerías, que sí, son muy cómodas, pero no tengo muy claro que tengan buen rendimiento.

JsonSQL

Vía / AjaxLine

Formatea código JSON online

Suele pasar que el código JSON que generamos para que lo lea el navegador, suele estar falto de formato, por lo cual leerlo para depurarlo suele ser algo complicado. Realmente es buena idea no meterle espacios, saltos de línea o tabuladores para dejarlo “bonito”, ya que eso es desperdicio del ancho de banda (hay que ahorrar por todas partes).
JSON Formatter es una aplicación online que nos formatea el código JSON que introducimos, añadiendo espacios, tabuladores y saltos de línea para una mejor comprensión.
jsonformatter.png
JSON Formatter
Vía / dzone

JSONER: librería para JSON

JSONER es una librería Javascript para felicitar la creación de aplicaciones Ajax que necesiten de JSON. Nos ofrece diversas funcionalidades para llevar a cabo las tareas necesarias para trabajar con JSON.

Entre las utilidades que nos ofrece encontramos:

  • Herramientas genéricas: buscar datos, modificar HTML, comparar objetos JSON, acceder a propiedades.
  • API de eventos: para poder trabajar en estructuras tipo árbol.
  • Tratamiento como nodos: como si se tratara de un árbol (XML o parecido), podemos acceder a hijos, tratarlos, modificarlos y otras operaciones.
  • Búsqueda de datos: para especificar condiciones en la búsqueda y encontrar objetos en JSON.
  • Utilidades varias: clonar árboles JSON, unir árboles JSON, comparar dos modelos JSON, …

Supongo que habría que mirar el rendimiento de la librería o si nos compensa usar esta en vez de usar otra de las habituales, pero aún así, supone una ayuda para nuestros proyectos.

JSONER

Vía / dzone

| |

Convirtiendo XML a JSON con PHP5 DOM y XSL

JSON es un formato de datos de intercambio de Javascript que el auge de AJAX ha hecho muy popular. En javascript es mucho más cómodo trabajar con JSON frente a XML ya que podemos analizarlo rápidamente utilizando eval().

Cuando queremos trabajar con API´s como las de Amazon, Technorati, del.icio.us o Ficrk vía REST nos encontramos con que todas ellas devuelven los datos en XML. Gracias a PHP5 y utilizando sus extensiones DOM y XSL podemos transformar un documento XML en JSON de forma muy sencilla.

Veamos un ejemplo de cómo hacer esto con una consulta a la API de Technorati:

En primer lugar vamos a componer la URL con la que haremos nuestra consulta:


$technoratiApiKey = "introduceTuAPIdeTechnorati";
$url = "http://api.technorati.com/tag";
$tag = "usabilidad";
$request=$url."?key=".$technoratiApiKey."&tag=".urlencode($tag);

Y ahora creamos un nuevo objeto DOM y cargamos nuestro el fichero XML que nos devuelve la consulta:


$inputdom = new DomDocument();
$inputdom->load($request);

Para transformar los datos utilizaremos un xml2json.xsl, un fichero XSLT que tiene las instrucciones para transformar XML en JSON. Lo cargamos en un nuevo objeto DOM:


$xslt = "xml2json.xsl";
$xsl = new DomDocument();
$xsl->load($xslt);

¿Qué nos falta? pues: crear un procesador de XSLT en PHP, cargar nuestra xslt, realizar la transformación y generar el documento:


$proc = new XsltProcessor();
$xsl = $proc->importStylesheet($xsl);
$newdom = $proc->transformToDoc($inputdom);
print $newdom->saveHTML();

Próximamente veremos cómo utilizar esta técnica para procesar información de diversas API´s REST mediante AJAX.