[RESOLVIDO]Formatar string em Json.. JavaScript

Boa Tarde. pessoal

preciso ler uma string no JavaScript e formatar ele na forma correta de json… a string. por exemplo é assim:

[{"atributoEstadoPk.atributo.codigo":1,"atributoEstadoPk.estado.codigo":"1"},{"atributoEstadoPk.atributo.codigo":2,"atributoEstadoPk.estado.codigo":"4"}]

Tenho que ser uma função que seje meio dinamica… pois posso ter n atributos. com n. elementos …

Isso: {"atributoEstadoPk.atributo.codigo":1,
Se Torne Isso:

{"atributoEstadoPk" : { "atributo" : {"codigo" : 1 } } }  

Alguem sabe de alguma função ja implementada ou dar uma mão de como fazer isto.

Obrigado

Oi, fiz alguma coisa aqui para vc.
A função transformar recebe um objeto escrito em JSON no seu formato original e retorna um novo objeto da forma que você quer.
Tanto os objetos de entrada e de saída são arrays.

[code]<%–
Document : index
Created on : Oct 21, 2011, 7:37:09 PM
Author : David
–%>

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

JSP Page
        function load() {
            
            var dados = [{"atributoEstadoPk.atributo.codigo":1,"atributoEstadoPk.estado.codigo":"1"},{"atributoEstadoPk.atributo.codigo":2,"atributoEstadoPk.estado.codigo":"4"}];
            
            var objeto = transformar( dados );
            
            alert( objeto[0].atributoEstadoPk.atributo.codigo );
            alert( objeto[1].atributoEstadoPk.estado.codigo );
            alert( objeto[2].atributoEstadoPk.atributo.codigo );
            alert( objeto[3].atributoEstadoPk.estado.codigo );
            
            
        }
        
        function transformar( dados ) {
            
            var transferencia = "[";
            
            var processa = function( dados ) {
            
                for ( var x in dados ) {

                    if ( dados[x] instanceof Object ) {
                        processa( dados[x] );
                    } else if ( typeof x == "string" ) {

                        var chaves = x.split(".");
                        var valor = dados[x];
                        var novoObjeto = "";

                        for ( var i = 0; i < chaves.length; i++ ) {
                            novoObjeto += '{"' + chaves[i] + '":'
                        }

                        if ( typeof valor == "string" ) {
                            novoObjeto += '"' + valor + '"';
                        } else {
                            novoObjeto += valor;
                        }

                        for ( ; i > 0; i-- ) {
                            novoObjeto += "}";
                        }

                        transferencia += novoObjeto + ",";

                    }
                }
            }
            
            processa( dados );
            
            // remove a última vírgula
            transferencia = transferencia.substring( 0, 
                    transferencia.length - 1 );
                    
            transferencia += "]";
            
            return eval( transferencia );
                
        }
        
        
    </script>
</head>
<body onload="load()">
</body>
[/code]