在RavenDB文档中更新字段

时间:2014-12-02 12:12:33

标签: c# json ravendb

美好的一天,

我有一个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; }
}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要将JSON解析为对象,然后将其交给Raven DB。字符串被视为字符串。使用JSON.NET库到parse it into Anonymous objects。将Info属性更改为对象类型。然后将匿名对象分配给Info属性。