1

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

这是数据的一个示例,我查询了键“Name”,它通过这个 url 返回了我:http:// localhost:28017/MyDatabase/MyCollection/?filter_Key=Name

{“偏移”:0,“行”:[{“_id”:{“$binary”:“fXvnbtlMhU24EWg9NiY5QQ==”,“$type”:“03”},“键”:“名称”,“值” : “约翰·史密斯” } ],

“total_rows”:1,“查询”:{“Key”:“名称”},“millis”:0}

我想检索价值“约翰史密斯”

谢谢

[编辑] 我已经设法从我的 json中得到{"Value": "John Smith"} 。哦!!看到这个丑陋的代码:

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;
}

它并不完美,我仍然没有得到我的John Smith但必须有更好的方法,而不需要手动解析,不是吗?

4

1 回答 1

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; }
}
于 2011-05-16T08:33:02.323 回答