.NET Core - التعامل مع JSON وModel Binding
5.3 .NET Core - التعامل مع JSON وModel Binding
في Web APIs باستخدام ASP.NET Core، يتم إرسال واستقبال البيانات عادةً بتنسيق JSON. يتم تحويل هذه البيانات تلقائيًا إلى كائنات C# باستخدام ما يسمى بـ Model Binding، وهو ميكانيزم مدمج في ASP.NET.
🔹 ما هو JSON؟
JSON (JavaScript Object Notation) هو تنسيق خفيف وسهل القراءة لتمثيل البيانات باستخدام أزواج (key/value). مثال:
{
"id": 1,
"name": "Monitor",
"price": 1200
}
🔸 في Web APIs، يتم إرسال هذا النوع من البيانات من وإلى السيرفر تلقائيًا.
🔹 ما هو Model Binding؟
Model Binding هي الآلية التي تستخدمها ASP.NET Core لتحويل البيانات القادمة من الطلب (مثل JSON) إلى كائنات C# تلقائيًا.
📦 مثال على Model:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
📨 مثال على API يستقبل JSON:
[HttpPost]
public IActionResult AddProduct([FromBody] Product product)
{
return Ok($"تم استقبال: {product.Name} - السعر: {product.Price}");
}
🔸 لاحظ استخدام [FromBody]
لتحديد أن البيانات تأتي من جسم الطلب بصيغة JSON.
🔹 الإرسال من Postman
POST https://localhost:5001/api/products
{
"id": 5,
"name": "Mouse Pad",
"price": 50
}
🔸 يتم تحويل هذا JSON إلى كائن C# تلقائيًا داخل الـ API.
🔹 ربط البيانات من QueryString أو Route
// من عنوان URL
[HttpGet("{id}")]
public IActionResult GetProduct(int id) => Ok($"معرف المنتج = {id}");
// من Query String
[HttpGet]
public IActionResult Search([FromQuery] string name)
=> Ok($"جارٍ البحث عن المنتج: {name}");
🔸 يمكن لـ ASP.NET Core ربط القيم من Body أو Route أو Query تلقائيًا.
🔹 نصائح هامة
- استخدم
[FromBody]
عندما تستقبل JSON. - استخدم
[FromQuery]
للمعلمات في رابط الاستعلام. - احرص على أن أسماء الخصائص في JSON تطابق أسماء الخصائص في الكلاس C#.
🔹 الخلاصة
Model Binding تسهل تحويل البيانات القادمة من المستخدم إلى كائنات C# دون الحاجة إلى parsing يدوي. وتدعم ASP.NET Core الربط من JSON، Route، QueryString، وحتى النموذج المرفوع (Form).
تعليقات
إرسال تعليق