Masalah saya adalah bahwa saya ingin mengembalikan data JSON camelCased (sebagai lawan dari PascalCase standar) melalui ActionResult dari metode pengontrol ASP.NET MVC, yang diserialkan oleh JSON.NET .
Sebagai contoh, pertimbangkan kelas C # berikut:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Secara default, saat mengembalikan instance kelas ini dari pengontrol MVC sebagai JSON, itu akan diserialisasi dengan cara berikut:
{
"FirstName": "Joe",
"LastName": "Public"
}
Saya ingin serialisasi (oleh JSON.NET) sebagai:
{
"firstName": "Joe",
"lastName": "Public"
}
Bagaimana saya melakukan ini?
asp.net-mvc
json
json.net
camelcasing
aknuds1
sumber
sumber
Controller
metode, Anda mungkin harus menggunakanApiController
, dalam hal ini jawaban ini berfungsi dengan baik.application/json
, tidaktext/plain
.Saya menemukan solusi yang sangat baik untuk masalah ini di blog Mats Karlsson . Solusinya adalah menulis subkelas ActionResult yang membuat serialisasi data melalui JSON.NET, mengonfigurasi yang terakhir untuk mengikuti konvensi camelCase:
Kemudian gunakan kelas ini sebagai berikut dalam metode pengontrol MVC Anda:
sumber
Untuk WebAPI , lihat tautan ini: http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx
Pada dasarnya, tambahkan kode ini ke
Application_Start
:sumber
Saya pikir ini adalah jawaban sederhana yang Anda cari. Ini dari blog Shawn Wildermuth :
sumber
Alternatif untuk filter khusus adalah membuat metode ekstensi untuk membuat serialisasi objek apa pun ke JSON.
Kemudian panggil ketika kembali dari aksi controller.
sumber
Lebih sederhana adalah IMO yang lebih baik!
Kenapa kamu tidak melakukan ini?
Pengontrol kelas dasar sederhana
sumber
Dalam ASP.NET Core MVC.
sumber
Di bawah ini adalah metode tindakan yang mengembalikan string json (cameCase) dengan membuat serial suatu array objek.
Perhatikan instance JsonSerializerSettings dilewatkan sebagai parameter kedua. Itulah yang membuat camelCase terjadi.
sumber
Saya memang suka ini:
ini metode ekstensi sederhana dalam inti MVC, itu akan memberikan kemampuan ToJson () untuk setiap objek dalam proyek Anda, Menurut pendapat saya dalam proyek MVC sebagian besar objek harus memiliki kemampuan untuk menjadi json, tentu saja itu tergantung :)
sumber
Anda harus mengatur pengaturan di file 'Startup.cs'
Anda juga harus mendefinisikannya dalam nilai-nilai default JsonConvert, ini adalah jika nanti Anda ingin langsung menggunakan perpustakaan untuk membuat serialisasi objek.
sumber
Jika Anda mengembalikan ActionResult di .net core web api, atau hasil IHttpAction maka Anda cukup membungkus model Anda dalam metode Ok () yang akan cocok dengan kasing di ujung depan dan membuat serial untuk Anda. Tidak perlu menggunakan JsonConvert. :)
sumber