[英]Model to JsonElement
將模型轉換為 JsonElement 的最佳/最快方法是什么?
背景:我有一個控制器的現有代碼,它將 JsonElement 從請求正文傳遞到存儲庫。 現在我有另一個控制器,它首先需要對模型執行一些邏輯,然后我想將它傳遞到與第一個控制器相同的存儲庫。 問題是我似乎無法找到將模型轉換為 JsonElement 的方法,除此之外:
[HttpPost]
public async Task<IActionResult> Insert([FromBody] MyModel model)
{
//Amazing logic done to model remove as it is not needed
var json = JsonSerializer.Serialize(model);
using var doc = JsonDocument.Parse(json);
var results = _repository.Insert(doc.RootElement);
//Amazing logic parsing the results
}
這確實有效,只是看起來步驟太多了。 如果沒有其他辦法,那就這樣吧。
在控制器之外,您可以使用具有SerializeToElement
和SerializeToDocument
方法的JsonSerializer
:
var element = JsonSerializer.SerializeToElement(model);
var results = _repository.Insert(element);
對於控制器操作,您可以只接受JsonElement
/ JsonDocument
作為參數:
[HttpPost]
public async Task<IActionResult> Insert([FromBody] JsoneElement model)
{
var results = _repository.Insert(model);
...
}
我不確定我的解決方案是否比您的解決方案更好,但我認為值得一試。
您可以從正文中獲取原始 json( 此處為示例)。 然后,您可以從中創建一個 JsonElement,而無需將模型序列化為 json。 您需要在代碼中顯式反序列化MyModel
,但無論如何都應該完成(並且將由您或模型綁定機制完成)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.