2012-02-08 1 views
1

Salut, je suis frappé la tête contre le mur ici ...ASP.NET 4.0 JSON WebService - Suppression évasion Slashes

J'utilise DataContractJsonSerializer pour encoder des données que je récupérer à partir de la base de données que je « m envoyer retour à un appel AJAX ...

J'ai cette extension:

public static string ToJSON<T>(this T obj) where T : class 
    { 
     DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); 
     using (MemoryStream stream = new MemoryStream()) 
     { 
      serializer.WriteObject(stream, obj); 
      return Encoding.Default.GetString(stream.ToArray()); 
     } 
    } 

et je l'appeler de la ASMX:

return _webServiceService.GetSponsors().ToJSON(); 

Passant ResultSet à partir d'une procédure stockée en utilisant Entity Framework

Il est tout le travail de travail un peu, sauf cela fait partie de ce qui est de retour:

{"d":"[{\"FileID\":296,\"IconUrl\":\"\\/Files\\/Banners\\/20119\\/00B56BAC.jpg\",\"ImageUrl\":.... 

Comment sur terre pour me débarrasser des barres obliques si qu'il retourne le suivant:

{"d":"[{"FileID":296,"IconUrl":"/Files/Banners/20119/00B56BAC.jpg","ImageUrl":.... 

J'essaye de mettre en application la saisie semi-automatique d'IU de JQuery. Eh bien, je suppose que cela va le trier, pas sûr si j'ai besoin de la valeur FileID entre guillemets?

+0

Est-ce une application MVC? – tawman

+0

Non, c'est MVP ... Je vais poster un peu du code – Ianc22

Répondre

1

Vous n'avez pas besoin de sérialiser manuellement la valeur de retour JSON, car ASP.NET will handle it for you automatically in that scenario. Ce que vous voyez là est ASP.NET appliquant un deuxième niveau de sérialisation JSON à votre chaîne générée manuellement, ce qui nécessite d'échapper des guillemets doubles avec des barres obliques inverses.

Modifier votre méthode ASMX pour renvoyer quelque chose comme List<Sponsor> et renvoyer _webServiceService.GetSponsors() directement, sans l'extension ToJSON().

+0

Merci Dave ...! Je me sens comme un twit en ce moment .. Trié! – Ianc22

+0

@ Ianc22: Vous ne devriez pas vous sentir mal. C'est une erreur incroyablement commune. Ce n'est pas du tout évident qu'ASP.NET s'occupera du travail JSON pour vous ici, donc il est naturel de supposer que vous devez le faire vous-même. –