Redis添加" \"到JSON字符串

时间:2015-10-11 13:27:46

标签: json redis backslash

我使用ServiceStack Redis来保存JSON的值并在以后检索它。 问题是当我从redis中检索值时,它会添加多个" \"这毁了我的JSON。

例如我保存:

  

{"用户":" 123456","密码":" xxxxxxx" }

当我检索到它的价值时出现:

  

{\"用户\":\" 123456 \",\"密码\":\" xxxxxxx \&#34 ; }

我想知道是否有某种设置可以防止这种情况发生?为什么会这样? JSON包含一些" \ n"获得" \"添加到它们中,我只是从示例中删除它们以使其更具可读性。

2 个答案:

答案 0 :(得分:2)

在检查我的代码之后,我注意到我在从Redis返回数据时将其类型转换为字符串(以字节数组形式返回),并且它正在添加额外的" \"。 我解决这个问题的方法是将我的JSON解码为base64String,然后将其存储在Redis中,然后将其解码回来。

答案 1 :(得分:0)

ServiceStack Redis客户端将复杂类型序列化为JSON,如果要按原样存储字符串,则只应使用API's that accept a string而不是通用T类型,例如:

void SetAll(IEnumerable<string> keys, IEnumerable<string> values);
void SetAll(Dictionary<string, string> map);
void SetValues(Dictionary<string, string> map);

void SetValue(string key, string value);
void SetValue(string key, string value, TimeSpan expireIn);
bool SetValueIfNotExists(string key, string value);
bool SetValueIfExists(string key, string value);

string GetValue(string key);
string GetAndSetValue(string key, string value);

List<string> GetValues(List<string> keys);