使用javascript.typescript将转义的字符串cookie转换为json对象

时间:2018-01-23 12:22:39

标签: json angular typescript cookies

我正在开发一个角度4的应用程序并使用ngx-cookie-service模块来保存并获取cookie

使用以下代码保存Cookie

let defaultData = {   
            merchant_name : response.data.profile.business_name,
            role          : response.data.role,
            id            : response.data.merchant_id,
            is_default    : false
         };
let cookieData = JSON.stringify(defaultData);
cookieService.set('merchant_data', cookieData );

它正常工作并以下列格式保存cookie

%257B%2522merchant_name%2522%253A%2522vk%2522%252C%2522role%2522%253A%2522merchant%2522%252C%2522id%2522%253A103%252C

现在我正在使用cookieService.get('merchant_data')读取相同的cookie并且它正常工作但我在将字符串转换为原始json对象时面临问题。

我尝试过JSON.parse,但它不能作为其转义字符串工作,有没有办法读取这些类型的cookie字符串并转换为json或数组?

1 个答案:

答案 0 :(得分:0)

JSON.parse()与JSON.stringify()完全相反,它应该可以工作。

问题可能来自ngx-cookie-service我会建议使用localStorage来完成相同的行为。

像这样:

var testObject = { 'one': 1, 'two': 2, 'three': 3 };

// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));

// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');

console.log('retrievedObject: ', JSON.parse(retrievedObject));

有关HTML5 LocalStorage

的更多信息