Cómo analizar JSON para objetar con clave en minúsculas

¿Qué tal esto:

json.replace(/"([^"]+)":/g,function($0,$1){return ('"'+$1.toLowerCase()+'":');}));

La expresión regular captura el nombre de clave $1 y lo convierte a minúsculas.

Demostración en vivo:http://jsfiddle.net/bHz7x/1/

[editar] Para abordar el comentario de @FabrícioMatté, otra demostración que solo coincide con caracteres de palabras:http://jsfiddle.net/bHz7x/4/


Itere sobre las propiedades y cree propiedades en minúsculas mientras elimina las antiguas en mayúsculas:

var str = '{"ID":1234, "CONTENT":"HELLO"}';

var obj = $.parseJSON(str);
$.each(obj, function(i, v) {
    obj[i.toLowerCase()] = v;
    delete obj[i];
});

console.log(obj);
//{id: 1234, content: "HELLO"} 

Violín

O simplemente puede construir un nuevo objeto a partir de las propiedades del anterior:

var obj = $.parseJSON(str),
    lowerCased = {};
$.each(obj, function(i, v) {
    lowerCased[i.toLowerCase()] = v;
});

Violín

Referencias:

  • jQuery.each
  • String.toLowerCase