Доступ к сервису MongoDB Rest с помощью C # - PullRequest
1 голос
/ 13 мая 2011

Я новичок в mongoDb, я хотел бы получить доступ к службе отдыха MongoDb, данные, которые я получил, имеют тип json.У меня вопрос, как вы анализируете эти данные?Я не нашел ни одного MongoDb API, который позволяет мне легко запросить его.Итак, что бы вы сделали?

Вот пример данных, я запросил ключ «Имя», который вернул меня в строку благодаря этому URL: http://localhost:28017/MyDatabase/MyCollection/?filter_Key=Name

{"offset": 0, "row ": [{" _id ": {" $ binary ":" fXvnbtlMhU24EWg9NiY5QQ == "," $ type ":" 03 "}," Key ":" Name "," Value ":" John Smith "}],

"total_rows": 1, "query": {"Key": "Name"}, "millis": 0}

И я хотел бы получить значение "John Smith"

Спасибо

[ПРАВИТЬ] Мне удалось вытащить {"Значение": "Джон Смит"} из моего 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 Ответ

1 голос
/ 16 мая 2011

Вот решение, ребята:

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