2013-05-16 4 views
0

почему я получаю каждый отдельный символ выходит в качестве значения, как 0: {Значения JSON.parse являются отдельными символами?

memory=to; 
    var store='['; 


    $.each($('.spoke'),function(){ 
    store=store+'"'+$(this).attr('id')+'":"'+hexEncode('<div class="spoke"from="'+$(this).attr('from')+'"id="'+$(this).attr('id')+'">'+$(this).html()+'</div>')+'",'; 
    }); 


    store=store+']';store=store.replace(',]',']'); 





    $.localStorage.setItem(memory,JSON.stringify(store)); 

    var posts=$.localStorage.getItem(memory); 

    posts=JSON.parse(posts); 

    alert(posts); 

    $.each(posts, function(key, value){ 

    alert(key+' : '+value); 
    }); 

------------------------- вау им так чертовски устали его 3:15 его неподвижная

function save(){ 
    memory=to; 
    var store={}; 


    $.each($('.spoke'),function(){ 
    var id=$(this).attr('id'); 

    var p=hexEncode('<div class="spoke"from="'+$(this).attr('from')+'"id="'+$(this).attr('id')+'">'+$(this).html()+'</div>'); 
    store[id]=p; 
    }); 

    $.localStorage.setItem(memory,JSON.stringify(store)); 

    var posts=$.localStorage.getItem(memory); 

    posts=JSON.parse(posts); 


    $.each(posts, function(key, value){ 
    $('#log').append(hexDecode(value)+' it works'); 
    //$.each(value, function(key, value){ 
    //$('#log').append(value+' it works2'); 
    });//}); 

ответ

0

вы stringifyed строки так, когда вы разобрать его, вы получите назад строку, и вы будете просто читать символ в конкретном индексе в строке. Вместо того, чтобы пытаться построить JSON вручную, создайте массив или объект, а затем подстройте его.

+0

путем изменения: $ .localStorage.setItem (память, магазин); \t.. //$.localStorage.setItem(memory,JSON.stringify(store)); я просто получаю сообщение об ошибке: Uncaught SyntaxError: Неожиданный токен: –

+0

Почему вы изменили его на это? – Musa

0

Вы не создаете массив, а строковый синтаксический анализ массива. Вы также закрыть кавычки ("), прежде чем закончить элемент Вы либо сделать правильную строку или сделать действительный массив т.е.

store = []; 
store.push("whatever"); 
$.localStorage.setItem(memory,JSON.stringify(store)); 
Смежные вопросы