Fondamentalement une dupe de this question avec une différence notable - je dois utiliser DataContractJsonSerializer
.DataContractJsonSerializer lisible par l'homme json
A
simplesusing (var stream = new MemoryStream())
{
var serializer = new DataContractJsonSerializer(typeof(Person));
serializer.WriteObject(stream, obj);
...
return stream.ToArray();
}
seule ligne produit json, par exemple, (Lors de l'enregistrement dans le fichier)
...{"blah":"v", "blah2":"v2"}...
Quelles sont les options pour le rendre
...
{
"blah":"v",
"blah2":"v2"
}
...
je peux penser post-traitement ... Y at-il une option plus facile? Par exemple. similaire à la mise en forme xml produced by DataContractSerializer?
using (var stream = new MemoryStream())
{
var serializer = new DataContractJsonSerializer(typeof(T));
// "beautify"
using (var writer = new SomeKindOfWriter(stream))
serializer.WriteObject(writer, obj);
...
return stream.ToArray();
}
est-il un moyen de faire une telle SomeKindOfWriter
Embellir JSON en cas de besoin?
Je ne suis pas sûr que vous pouvez le faire avec 'DataContractJsonSerializer' sans une fonction/bibliothèque externe pour le faire. – DavidG
Eh bien, je peux faire un post-traitement en ce moment, mais cela semble stupide: analyser json en arrière (d'une certaine manière). Je serais heureux avec réponse où il y a quelque chose entre le flux de mémoire et json obtenant des valeurs et être capable de les formater. Semblable à ['XmlWriter'] (http://stackoverflow.com/a/739169/1997232) si cela est possible. – Sinatr
Es-tu obligé d'utiliser exactement DataContractJsonSerializer? Peut-il s'agir d'une autre classe dérivée de XmlObjectSerializer? –