Verhindern, dass $id/$ref beim serialisieren von Objekten mithilfe von Web-API und JSON.NET

Ich kann nicht scheinen, um zu verhindern, dass Web-API/JSON.NET aus mit Newtonsoft.Json.PreserveReferencesHandling.Objects beim serialisieren von Objekten. In anderen Worten, " $id/$ref sind immer in der serialisierten Objekte, trotz Verwendung der folgenden Einstellungen:

public class MvcApplication : System.Web.HttpApplication {

    protected void Application_Start () {
        WebApiConfig.Register(GlobalConfiguration.Configuration);
    }

}

public static class WebApiConfig {

    public static void Register (HttpConfiguration config) {
        JsonMediaTypeFormatter jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().Single();
        jsonFormatter.UseDataContractJsonSerializer = false;
        jsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
        jsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
        jsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;
    }

}

Irgendwelche Ideen?

  • Diese Einstellung in der WebApiConfig Klasse (public static void Register (HttpConfiguration config) von der protected void Application_Start () innerhalb von Global.asax.cs
  • Als pro @AndreHaverdings' Antwort unten, mit PreserveReferencesHandling auf Alle gesetzt ist, bewirkt, dass die ids und Referenzen Hinzugefügt werden. Einstellung Ihre Letzte Zeile zu jsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None; sollte den trick tun.
InformationsquelleAutor Michael | 2014-01-10
Schreibe einen Kommentar