serializeobject serialize objects newtonsoft net jsonconvert example deserializeobject deserialize c# json serialization json.net

c# - objects - newtonsoft json serialize vb net



¿Cómo puedo hacer que Json.NET sea el serializador Json predeterminado? (1)

Si tengo un servicio web (.asmx) y quiero que use Json.NET para serializar todos los objetos que devuelvo de ese servicio web, ¿hay alguna manera de hacerlo?

En otras palabras, tengo una clase como esta:

[JsonObject(MemberSerialization.OptOut)] public partial class Person { public string FirstName {get; set;} public string LastName {get; set;} [JsonIgnore] public string Password {get; set;} }

Y en mi servicio web, tengo esto:

[WebMethod] public Person GetBlahPerson() { Person p = new Person(); p.FirstName = "bob"; p.LastName = "smith"; p.Password = "don''t tell"; return p; }

Si utilizo jQuery, establezco el tipo de retorno en json, serializa mi objeto a json.

¿Es posible hacer que use Json.net a través de una configuración en web.config o algo similar?


Solo JSON - no. Solo puede redefinir toda la IHttpHandlerFactory con

<add verb="*" path="*.asmx" type="YourScriptHandlerFactory" validate="false"/>

Pero esto significa que tendrá que retroceder a la implementación predeterminada mediante la reflexión, o implementar su análogo del espacio de nombres System.Web.Script.Services (que es bastante grande).

De hecho, lo hice con reembolsos de reflexión para otros fines (manejo centralizado de errores), por lo que debería ser posible, pero requiere precisión y sería muy frágil entre las versiones de .NET.

¿Usas ASP.NET clásico o MVC? Si usa MVC, simplemente use un controlador, es mucho más fácil.