私はMongoDB .netドライバを使用している.Net Core 2.0 Web APIを持っています。Web API + MongoDB:任意のオブジェクトのリスト?
私はListOfValues
というクラスがあります、
{
"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 });
}
}
私はこのデータを掲載していますが私は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のデータをリクエストと同じように見せたいのですが、そうですか? –