MongoDB .net 드라이버를 사용하는 .Net Core 2.0 웹 API가 있습니다. 어떤 이유로웹 API + MongoDB : 임의의 객체 목록?
{
"listName": "test",
"MetaData": [{
"Name": "Text",
"FieldType": "TextBox",
"isActive": 1
}]
}
: 절약에 대한
public class ListOfValues
{
public string ListName { get; set; }
public List<object> MetaData { get; set; }
}
내 컨트롤러의 엔드 포인트는 다음과 같습니다 :
public class LovController : Controller
{
[HttpPost]
public async Task<IActionResult> Create([FromBody] ListOfValues lov)
{
if (!ModelState.IsValid)
return BadRequest();
await ldbContext.GetCollection<ListOfValues>("ListOfValues").InsertOneAsync(lov);
return CreatedAtAction("Create", new { Id = lov.Id });
}
}
내가이 데이터를 게시하도록하겠습니다
나는 ListOfValues
라는 클래스가 DB에 쿼리하면이 값이 표시됩니다.
{
"_id" : ObjectId("5a1421e644d7cb07a8d3c45d"),
"ListName" : "test",
"MetaData" : [
{
"_t" : "Newtonsoft.Json.Linq.JObject, Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed",
"_v" : {
"Name" : {
"_t" : "JValue",
"_v" : []
},
"FieldType" : {
"_t" : "JValue",
"_v" : []
},
"isActive" : {
"_t" : "JValue",
"_v" : []
}
}
}
]
}
클래스 나 구조체와 같은 지정된 형식의 목록을 사용하면 클라이언트가 보낼 수있는 개체를 알 수 없으므로 목록이 동적 개체 여야합니다.
DB에 저장된 데이터를 읽을 수있게하려면 어떻게해야합니까?
메타 데이터 클래스의 예를 C#으로 추가 할 수 있습니까? 문제는 Newtonsoft.Json과 관련이 있습니다. MongoDB 드라이버와 아무 관련이 없습니다. –
메타 데이터 속성에 대한 클래스가 없습니다. 클라이언트가 전송하는 동적 인 JSON 배열 인 것으로 가정합니다. Newtonsoft.Json에 대한 참조가 없기 때문에 코드에 왜 나타나는지 모르겠습니다. –
아, 알겠습니다. 따라서 DB의 데이터를 요청과 똑같이 보길 원합니다. –