JSON.parse值是单个字符?

时间:2013-05-16 00:49:37

标签: javascript jquery json

为什么我会将每个角色都显示为0之类的值:{

    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');
    });//});

2 个答案:

答案 0 :(得分:0)

你已经对字符串进行了字符串化,所以当你解析它时你会得到一个字符串,你只需要读取字符串中特定索引处的字符。而不是尝试手动构建JSON构建一个数组或对象,然后将其字符串化。

答案 1 :(得分:0)

您不是在创建一个数组,而是一个可解析为数组的字符串。在结束元素之前,您也在关闭引号(“)。您可以创建有效的字符串,也可以创建有效的数组。

store = [];
store.push("whatever");
$.localStorage.setItem(memory,JSON.stringify(store));