2011-05-13 150 views
1

我是mongoDb的初学者,我想访问MongoDb rest服务,我检索的数据是json类型。我的问题是,你如何解析这些数据?我没有找到任何允许我轻松查询的MongoDb API。那么你会怎么做?使用C访问MongoDB Rest服务#

下面是数据的一个例子,我问这回我就行感谢这个网址的关键 “名称”: HTTP:// localhost:28017/MyDatabase的/ MyCollection的/ filter_Key =名称

{ “offset”:0, “rows”:{“_id”:{“$ binary”:“fXvnbtlMhU24EWg9NiY5QQ ==”,“$ type”:“03”},“Key”:“Name”,“值”: “约翰·史密斯”} ],

“TOTAL_ROWS”:1, “查询”:{ “关键”: “姓名”}, “米利斯”:0 }

而且我想检索值“约翰·史密斯”

感谢的

[编辑] 我已经成功地得到{“值”:“约翰·史密斯”}出我的JSON。哦!!看到这个丑陋的代码:

var urlToFetch = "http://`localhost`:28017/MyDatabase/MyCollection/?filter_Key=Name"; 
var jsonData = GetDataFrom(urlToFetch); 
var value = JsonConvert.DeserializeObject(jsonData); 
foreach (var key in ((JObject)value)["rows"].Values()) 
{ 
    key.Parent.Last; 
} 

它并不完美,我还没有得到我的约翰·史密斯但必须是有更好的方式,而无需手动解析,不是吗?

回答

1

这里的解决方案家伙:

public class yourclass 
{ 
    public void transformJsonToObject() 
    { 
    JsonSerializer serializer = new JsonSerializer(); 
    var value = JsonConvert.DeserializeObject<ResultViewModel>(jsonData); 
    } 
} 
public class ResultViewModel 
{ 
    [JsonProperty("offset")] 
    public int Offset; 
    [JsonProperty("rows")] 
    public TestViewModel[] Rows; 
} 

public class TestViewModel 
{ 
    [JsonProperty("_id")] 
    public TestArray Id { get; set; } 
    public string Key { get; set; } 
    public string Value { get; set; } 
} 

public class TestArray 
{ 
    [JsonProperty("$binary")] 
    public string Binary { get; set; } 
    [JsonProperty("$type")] 
    public string Type { get; set; } 
}