我使用ServiceStack Redis来保存JSON的值并在以后检索它。 问题是当我从redis中检索值时,它会添加多个" \"这毁了我的JSON。
例如我保存:
{"用户":" 123456","密码":" xxxxxxx" }
当我检索到它的价值时出现:
{\"用户\":\" 123456 \",\"密码\":\" xxxxxxx \&#34 ; }
我想知道是否有某种设置可以防止这种情况发生?为什么会这样? JSON包含一些" \ n"获得" \"添加到它们中,我只是从示例中删除它们以使其更具可读性。
答案 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);