ASP.NET Web API'sinin doğal olarak nesneleri nesnelleştirmek için Json.NET kullandığını biliyorum, ancak kullanmak istediğiniz JsonSerializerSettings
nesnesini belirtmenin bir yolu var mı? Örneğin, type
bilgisini serileştirilmiş JSON dizesine eklemek istediğimde ne yapmalıyım? Normalde ayarları .Serialize()
aramasına enjekte ediyorum, ancak Web API bunu sessizce yapıyor. Ayarları el ile enjekte etmenin bir yolunu bulamıyorum.MVC 4 Web API'sı için Json.NET için özel JsonSerializerSettings nasıl ayarlanır?
cevap
HttpConfiguration
nesnesindeki Formatters.JsonFormatter.SerializerSettings
özelliğini kullanarak JsonSerializerSettings
özelleştirebilirsiniz. Her JsonConvert
için JsonSerializerSettings
belirtebilirsiniz
protected void Application_Start()
{
HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.Formatting =
Newtonsoft.Json.Formatting.Indented;
}
ve global varsayılan ayarlayabilirsiniz:
Örneğin, Application_Start() yönteminde bunu yapabilir.
Tek bir aşırı ile JsonConvert
:
// Option #1.
JsonSerializerSettings config = new JsonSerializerSettings { ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore };
this.json = JsonConvert.SerializeObject(YourObject, Formatting.Indented, config);
// Option #2 (inline).
JsonConvert.SerializeObject(YourObject, Formatting.Indented,
new JsonSerializerSettings() {
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
}
);
Küresel Global.asax.cs içinde Application_Start()
kod ile ayarlanması:
JsonConvert.DefaultSettings =() => new JsonSerializerSettings {
Formatting = Newtonsoft.Json.Formatting.Indented,
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
};
Referans: https://github.com/JamesNK/Newtonsoft.Json/issues/78
FWIW, başlangıçta denediğim ikinci yöntemdi. JsonConvert.DefaultSettings'de yapılandırılan ayarların gözlenmediğinden, [carlosfigueira'nın cevabı] 'nda (http://stackoverflow.com/a/13274791/44853)' HttpConfiguration 'kullanılmalıydı. –
Benim durumumda, 'JsonSerializerSettings' Global ayar kullanımı benim için çalıştı. HttpCOnfiguration işe yaramadı, başka bir derleme yöntemleri (Hangifre) ile geri geliyordu emin değilim neden emin değilim. – ppumkin
Gizli form kullanabilirim "formHiddenField.Value = JsonConvert.SerializeObject (listaCursos, Formatting.Indented, jsonSerializerSettings);" ve JQuery değerini "var data = $ ('# formHiddenField') değerini almak için kullanın. Val();'? – Kiquenet
Cevap olduğunu bu 2 satırın eklenmesi o Global.asax.cs Application_Start yöntemine f kodu
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling =
Newtonsoft.Json.PreserveReferencesHandling.All;
Referans: Handling Circular Object References
- 1. ASP.NET 4 MVC Web API: Karmaşık yönlendirme için belgeler
- 2. Json.Net: Özel adlandırma için JsonSerializer-Öznitelik
- 3. Özel web siteleri için Orchard
- 4. Web görüntülemesi için kaydırma perfomance nasıl ayarlanır?
- 5. özel üyelik ve ASP.NET MVC 4
- 6. dll dosyası için özel simge nasıl ayarlanır?
- 7. ActionFilterAttribute ASP MVC 5'de ViewBag için değerler nasıl ayarlanır?
- 8. MVC 5 için web yardımcıları
- 9. MVC ScriptBundle'da charset için .js dosyası nasıl ayarlanır?
- 10. Json.Net
- 11. ASP.NET MVC 4 RC Web API Parametre Bağlama Sayı
- 12. Asp mvc 4 Üyelik ve Web Güvenliği
- 13. Web api open oauth (DotNetOpenAuth) mvc 4
- 14. Özel Json.NET küçük harf alt yapısı için sözleşme çözücü CamelCase
- 15. MVC 4
- 16. Raylarda Mekanize etmek için özel kullanıcı aracısı nasıl ayarlanır
- 17. JsonSerializerSettings ve Asp.Net Çekirdek
- 18. QPlainTextEdit için nasıl ayarlanır?
- 19. JSON için Spring MVC REST'de içerik uzunluğu nasıl ayarlanır?
- 20. ASP.NET MVC: LDAP kimlik doğrulaması için web.config nasıl ayarlanır?
- 21. json.net: sözlük tuşları için dönüştürücü belirtin
- 22. nasıl yerine sunucuya yükleyerek veritabanına kaydetmek görüntülemek için MVC 4
- 23. MVC 4 için nasıl daha fazla MapHttpRoute Api
- 24. MVC 4 .net
- 25. Web hizmetinden döndürülen json verilerini nasıl görüntülemek için ASP.net MVC 4 önyükleme tablosu
- 26. JSON.NET
- 27. mvc 4 web sitesinin web.config dosyasında nasıl eklenir
- 28. Tomcat'ta DEBUG için seviye günlüğü nasıl ayarlanır?
- 29. Rails dev sunucusu nasıl ayarlanır? Web sunucusu için Puma yerine
- 30. Json.NET
Eğer denetleyici veya eylem başına bunu yapabilir mi? – Chazt3n
HangFire yüklü olan ASP.NET uygulamasında çalışmasını bulamıyorum. Yanlış libarary veya bir şey atıfta bulunuyor. Varsayılan ayarlarla diğer cevabı kullanmak zorunda kaldı .. – ppumkin