Newtonsoft.Json SerializeObject sans antislash d'échappement
Donné le code:
dynamic foo = new ExpandoObject();
foo.Bar = "something";
string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);
La sortie est ci-dessous:
"{\"Bar\":\"something\"}"
Lors du débogage d'un grand document json il est difficile de lire - en utilisant les fonctions intégrées de Newtonsoft.Json (pas de regex ou des astuces qui pourrait casser des choses) est-il possible de faire la sortie d'une chaîne de caractères avec la le valie:
{Bar: "something"}
source d'informationauteur g18c
Vous devez vous connecter pour publier un commentaire.
Ce que vous voyez dans le débogueur lorsque l'on regarde les
json
valeur est la valeur de la chaîne que vous devez utiliser dans un fichier C# pour obtenir la même valeur.En effet, vous pouvez remplacer
avec
sans changer le programme du comportement.
Ainsi, pour obtenir une valeur différente, vous devez changer la façon dont JsonConvert fonctionne, mais JsonConvert est conforme à la JSON standarddonc oubliez ça!
Si vous n'êtes pas réellement la sérialisation ExpandoObject (ni aucune autre classe scellée hors de votre contrôle), vous pouvez utiliser le DebuggerDisplayAttribute sur les types que vous sérialisation json, pour définir la façon dont l'objet sera montré au cours de debug (dans votre code, le
foo
exemple).Mais une chaîne est une chaîne de caractères et VisualStudio est droit: double-guillemets doivent être échappé.
Si cela vous arrive, tandis que le retour de la valeur à partir d'une WebApi méthode, essayer de retourner l'objet lui-même, au lieu de la sérialisation de l'objet et le retour de la chaîne json. WebApi va sérialiser des objets json dans la réponse par défaut; si vous retourner une chaîne de caractères, il va échapper à tout guillemets qu'il trouve.
Ainsi, au lieu de:
Essayer:
Une vieille question, mais j'ai trouvé cela,
Dans mon cas, j'ai été à la recherche à la chaîne JSON dans un débogueur et j'ai trouvé que c'était l'ajout d'échapper.
Et quand j'ai imprimé JSON à la console, c'était sans caractères d'échappement. Espérons que cela aide.
Au lieu d'utiliser Newstonsoft.Json vous devez recourir à l' JavaScriptSerializer.Méthode Serialize:
Cette méthode permet d'obtenir exactement le résultat que vous recherchez. J'ai lu à ce sujet ici.
Hey, je Viens d'écrire tout simplement mettre dans un fichier
maintenant il suffit d'exécuter le programme et vous obtiendrez sans noir slash et il est bon pour de gros programmes où vous en avez besoin pour économiser de l'JSON plusieurs fois