RavenDB,存储Json对象(c#)

时间:2014-12-02 15:28:55

标签: c# json ravendb

我使用以下代码将字符串变量解析为Json对象:

string[] rInfo = r.Info.ToString().Split('|'); 
dynamic JSON_Obj = JObject.Parse(rInfo[0]);

它在Code中看起来很好,这意味着如果我在运行时检查对象它有正确的内容。但是,在我将它存储在RavenDB之后,它看起来像这样:

{"street": {
    "$type": "Newtonsoft.Json.Linq.JValue, Newtonsoft.Json",
    "$values": []
},
"country": {
    "$type": "Newtonsoft.Json.Linq.JValue, Newtonsoft.Json",
    "$values": []
}}

例如,在国家应该像" ES"或" GB"。

我将JSON对象存储为如下文档的一部分:

                PATCHED_Doc Doc = new PATCHED_Doc()
                {
                    Info = JSON_Obj, 
                    Value = "test",
                    Id = r.Id,
                    Date = r.Date,
                };

                session.Store(Doc);
                session.SaveChanges();

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

法哈达什是对的。我不得不创建一个类来映射属性。

var JSON_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Infolist>(strJSON);

Infolist正在:

public class Infolist
{
    public string street { get; set; }
    public string coutnry { get; set; }
    ...
}

像这样工作......