【问题标题】:JSON response in localStoragelocalStorage 中的 JSON 响应
【发布时间】:2012-06-23 16:26:14
【问题描述】:

我的 JSON 响应是一个键值对。

 {"category":[{"id":1,"name":"Merc"},{"id":2,"name":"BMW"}]}

在我解析响应之后

 var data = JSON.parse(xhr.responseText);

我需要存储在localStorage

 localStorage.setItem('carList', cars); 

现在这辆车应该保存为逗号分隔的键值对...怎么做?

 //1,Merc,2,BMW

【问题讨论】:

  • cars 是从哪里来的?您将 JSON 解析为 data
  • 如果你想存储像1,Merc,2,BMW 这样的字符串,那么你必须明确地创建它。但将其存储为 JSON 更好。
  • @FelixKling 如果我添加为 JSON 字符串,如 localStorage.setItem("str",JSON)。它会将 str 保存为 {"category":[{"id":1,"name":"Merc"},{"id":2,"name":"BMW"}]} 吗?那我还要再解析一下是吗?
  • @oneofthelions:是的。这取决于您最终要对数据做什么,但我认为这会更容易,因为您已经有了处理 JSON 的逻辑。如果使用逗号分隔的字符串,则必须创建另一个函数来解析它。

标签: javascript json string local-storage


【解决方案1】:

我希望以下链接 HTML5 localstorage to store JSON objects 能帮助您将 json 响应存储在 localStorage..

它看起来像。,

var dataToStore = JSON.stringify(data);
localStorage.setItem('someData', dataToStore);

【讨论】:

    【解决方案2】:

    我同意 Felix 的观点,最好将值存储在 json 字符串中。 只是为了回答你的问题。

    var text = [];
    for(var i = 0; i < data.category; i++){
        var car = data.category[i];
        text.push(car.id, car.name);
    }
    localStorage.setItem('carList', text.join(','));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多