美好的一天,
我有一个RavenDB JSON文档,其中一个字段(“Info”)包含一个如下所示的字符串:
"{\"value1\":\"9\", \"value2\": \"dog\", ....}"
我想删除转义的"\"
字符,以便它被RavenDB识别为JSON列表。
但是,我尝试使用
更新文档 newString = oldString.Replace("\\", "")
,
newString = oldString.Replace(@"\", "")
和newString = oldString.Trim(new Char[] { @"\" })
但它不起作用。应用上述方法后,字符串看起来没有变化。
请参阅下面的完整代码:
while(true)
{
var result = session.Query<Documents>()
.Take(1000).Skip(i)
.ToList();
if (result.Count == 0)
break;
foreach (var r in result)
{
string rInfo = r.Info.ToString();
rInfo = rInfo.Replace("\\", "");
PATCHED_Doc r_Doc = new PATCHED_Doc()
{
Info = rInfo,
Value = "test",
Id = r.Id,
Date = r.Date,
};
session.Store(r_Doc);
session.SaveChanges();
}
session.SaveChanges();
i += result.Count;
}
public class PATCHED_Doc
{
public string Info { get; set; }
public string Value { get; set; }
public int Id { get; set; }
public string Date { get; set; }
}
提前感谢您的帮助。
答案 0 :(得分:1)
您需要将JSON解析为对象,然后将其交给Raven DB。字符串被视为字符串。使用JSON.NET库到parse it into Anonymous objects。将Info属性更改为对象类型。然后将匿名对象分配给Info属性。