Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahseri Objek JSON Kompleks ke dalam Senarai Ditaip Kuat dalam Pengawal ASP.NET MVC?

Bagaimana untuk Menyahseri Objek JSON Kompleks ke dalam Senarai Ditaip Kuat dalam Pengawal ASP.NET MVC?

Barbara Streisand
Lepaskan: 2025-01-04 17:24:39
asal
872 orang telah melayarinya

How to Deserialize Complex JSON Objects into a Strongly-Typed List in an ASP.NET MVC Controller?

Menyahsiri Objek Kompleks dengan JSON dan jQuery dalam Pengawal ASP.NET MVC

Dalam ASP.NET MVC, menyahsiri objek kompleks daripada JSON boleh menjadi cabaran. Soalan ini menangani isu ini, di mana pengguna cuba menghantar pelbagai objek kompleks daripada jQuery kepada tindakan pengawal.

Untuk menangani ini, penyelesaian itu memanfaatkan [JsonFilter](https://web.archive.org/web/20120313075719/http://www.asp.net/web-api/overview/advanced/sending-and-receiving-json-in-aspnet-web- api) atribut tersuai. Atribut ini menyahsiri permintaan JSON ke dalam jenis yang sesuai dan mengikatnya pada parameter tindakan.

Kod Paparan Dikemas Kini

// Serialize the results into a JSON object
var postData = { widgets: results };

// Send the JSON data to the controller
$.ajax({
    url: '/portal/Designer.mvc/SaveOrUpdate',
    type: 'POST',
    dataType: 'json',
    data: $.toJSON(widgets),
    contentType: 'application/json; charset=utf-8',
    success: function(result) {
        alert(result.Result);
    }
});
Salin selepas log masuk

Kod Pengawal Diubah Suai

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
{
    // ... code to handle the updated widgets ...
}
Salin selepas log masuk

Penapis Json Tersuai Atribut

public class JsonFilter : ActionFilterAttribute
{
    public string Param { get; set; }
    public Type JsonDataType { get; set; }
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.ContentType.Contains("application/json"))
        {
            string inputContent;
            using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream))
            {
                inputContent = sr.ReadToEnd();
            }
            var result = JsonConvert.DeserializeObject(inputContent, JsonDataType);
            filterContext.ActionParameters[Param] = result;
        }
    }
}
Salin selepas log masuk

Penyelesaian ini secara berkesan menyahsiri tatasusunan JSON menjadi senarai ditaip kuat dalam pengawal, membolehkan pembangun memanipulasi objek kompleks dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk Menyahseri Objek JSON Kompleks ke dalam Senarai Ditaip Kuat dalam Pengawal ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan