我正在使用 JSON.stringify() 将 JavaScript 对象保存到本地存储。
localStorage.setItem('stored_object', JSON.stringify(objCases) );
定期地,我会发现 JSON 字符串会自发地发生变化从此:
{"9999999999999":{"case":"dummy","subj":"example","note":"placeholder"}}
进入此: (here's why)
{asynchronous_key:'577b3620-8cbd-5251-b526-5882044f1386', jsonObject:{"\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039":{"\u0063\u0061\u0073\u0065":"\u0064\u0075\u006d\u006d\u0079","\u0073\u0075\u0062\u006a":"\u0065\u0078\u0061\u006d\u0070\u006c\u0065","\u006e\u006f\u0074\u0065":"\u0070\u006c\u0061\u0063\u0065\u0068\u006f\u006c\u0064\u0065\u0072"}}}
正如 Pointy 最终说服我的那样,这是相同的信息,只是包裹在“安全信封”中 - 我需要从该信封中取出原始对象。
如何从该“信封”中检索原始 JSON 对象?
更新
我重新打开了这个问题,因为尽管 GoTo 0
提供了有用的答案,但我仍然难以将检索到的字符串转换为对象。 GoTo0 的答案从一个对象开始,我必须从一个格式与下面的演示完全相同的字符串开始:
我收到的错误是Uncaught SyntaxError: Unexpected token a in JSON atposition 1
var str = '{asynchronous_key:\'2e3b7cfc-906d-046e-31d5-5884c338d859\', jsonObject:{"\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039":{"\u0063\u0061\u0073\u0065":"\u0064\u0075\u006d\u006d\u0079","\u0073\u0075\u0062\u006a":"\u0065\u0078\u0061\u006d\u0070\u006c\u0065","\u006e\u006f\u0074\u0065":"\u0070\u006c\u0061\u0063\u0065\u0068\u006f\u006c\u0064\u0065\u0072"}}}';
console.log(str);
var obj = JSON.parse(str);
var orig = JSON.stringify(obj.jsonObject);
console.log(orig);
最佳答案
我不知道您的 JSON 是如何转换为该格式的,但是您可以轻松地从 jsonObject
的值中提取原始对象。属性并使用 JSON.stringify
对其进行格式化.
const data =
{asynchronous_key:'577b3620-8cbd-5251-b526-5882044f1386', jsonObject:{"\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039\u0039":{"\u0063\u0061\u0073\u0065":"\u0064\u0075\u006d\u006d\u0079","\u0073\u0075\u0062\u006a":"\u0065\u0078\u0061\u006d\u0070\u006c\u0065","\u006e\u006f\u0074\u0065":"\u0070\u006c\u0061\u0063\u0065\u0068\u006f\u006c\u0064\u0065\u0072"}}};
const originalJSONString = JSON.stringify(data.jsonObject);
console.log(originalJSONString);
顺便说一句,"\u0039"
称为转义序列。这里,它代表十六进制代码0x39或57的Unicode字符,即数字“9”。
关于javascript - JSON正在转换,如何转换回带有ascii文本的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41765063/