¿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