正在将字符串转换为有效的JSON对象
Converting string to a valid JSON object
嘿,我看到了很多关于这个主题的问题,但没有一个符合我的问题。我试图使用localStorage来存储用户自定义偏好,我尝试将json对象放入localStorage键中,稍后使用它。开头的对象看起来是这样的:
Object {test: "{a:"b",c:"d"}"}
JSON.parse
方法返回一个错误,我所做的是:
var local_storage = getAll();
$.parseJSON(JSON.stringify(local_storage.test.substring(0,0).substring(0,local_storage.length,-1)));
输出为:
{a:"b",c:"d"}
但是我不能用它作为localstorage.test.a,为什么会这样,解决方案是什么?
thx寻求帮助:)
编辑
感谢@Oli Soproni B,解决方案是:
var key = {a:"b",c:"d"};
var l = JSON.stringify(key);
localStorage.setItem('test',l);
var local_storage = $.parseJSON(localStorage.getItem('test'));
console.log(local_storage);
console.log(local_storage.a);
// data
var k = {a:"b", c: "d"};
// stringify json
var l = JSON.stringify(k);
// set item to local storage
localStorage.setItem('test', l);
// get item to local storage and parse data
var local_storage = $.parseJSON(localStorage.getItem('test'));
console.log(local_storage);
Object {a: "b", c: "d"}
console.log(local_storage.a);
prints b
// or use
var local_storage = JSON.parse(localStorage.getItem('test'));
// in parsing the stringify json data
Localstorage存储字符串,而不是对象。因此,您需要在存储时将对象转换为字符串,在检索时将其转换为对象。
存储:
localStorage.setItem("key",JSON.stringify(obj));
检索:
obj = JSON.parse(localStorage.getItem(obj));
请参阅此处的演示
您使用了Json.stringify
,因为您只需要将数据作为字符串存储到本地存储中。
您需要再次将其parse
转换为JSON
,以便将其用作JSON对象
但与此不同
JSON.stringify(local_storage.test.substring(0,0).substring(0,local_storage.length,-1))
这将尝试从先前存储的字符串中获取子字符串,并再次尝试将其字符串化。
你可以像这样直接获取存储的字符串,
var local_storage = getAll();
var test=JSON.parse(local_storage.test);
然后使用作为测试对象的test: {a:"b",c:"d"}
相关文章:
- 如何将数组转换为有效的json
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- $http-get方法即使使用AngularJS中.Net WebApi的有效json也会失败
- 从文件目录结构创建JSON数据的有效功能
- 列表/数组是否有效 JSON
- 解析有效 JSON 时出现“未捕获的语法错误:意外令牌:”
- 以角度Js显示数据的有效JSON
- Javascript-JSON.parse:数据意外结束-使用有效JSON时出错.我做错了什么
- 带有Object数据的Javascript 2D数组通过$.Ajax()转换为PHP$_POST的有效JSON字符串
- 要解析的有效JSON或JavaScript对象
- 解析有效JSON字符串时遇到问题
- 返回有效JSON时调用Ajax错误回调
- 具有有效JSON输出的JSONP分析错误
- 从无效转换为有效 JSON
- 返回有效JSON时触发getJSON失败(即使在同一域上)