为什么JSON to Array需要双JSON.parse?

时间:2015-08-21 07:57:58

标签: arrays json

我正在创建为我的页面添加过滤器的小部件。我保留有关在本地存储中添加过滤器的信息,但是当我尝试解码JSON时会发生魔力。它需要双json解析再次成为数组对象。

以下是代码:( this.filters是这样的数组:["filter_id", "filter_id2"]等。)

getFilters: function() {
    var json_str = localStorage.getItem("debt_filters");
    // BUG with quoting: json => array requires double parse :/
    this.filters = JSON.parse(JSON.parse(decodeURIComponent(json_str))) || [];
},
setFilter: function() {
    var json_str = this.createFilterJson();
    localStorage.setItem("debt_filters", json_str);
},
createFilterJson: function() {
    return encodeURIComponent(JSON.stringify(this.filters));
},

0 个答案:

没有答案