#mongodb-.net-driver
#mongodb-.net-driver
Вопрос:
Я новичок в 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 , «query» : { «Key»: «Name»} , «millis»: 0 }
И я хотел бы получить значение «Джон Смит»
Спасибо
[РЕДАКТИРОВАТЬ] Мне удалось получить {«Value»: «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:
Вот решение, ребята:
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; }
}