簡體   English   中英

模型到 JsonElement

[英]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
}

這確實有效,只是看起來步驟太多了。 如果沒有其他辦法,那就這樣吧。

在控制器之外,您可以使用具有SerializeToElementSerializeToDocument方法的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM