J'ai quelques objets .NET simples que je voudrais sérialiser en JSON et vice-versa. L'ensemble des objets à sérialiser est assez petit et je contrôle l'implémentation, donc je n'ai pas besoin d'une solution générique qui fonctionnera pour tout. Étant donné que mon assembly sera distribué en tant que bibliothèque, je voudrais vraiment éviter une dépendance sur certaines DLL tierces: je veux juste donner aux utilisateurs une assemblée à laquelle ils peuvent se référer.Sérialisation JSON très simple dans .NET
J'ai lu les autres questions que je pourrais trouver sur la conversion de et vers JSON dans .NET. La solution recommandée de JSON.NET fonctionne, bien sûr, mais elle nécessite la distribution d'une DLL supplémentaire.
Je n'ai besoin d'aucune fonctionnalité de JSON.NET. J'ai juste besoin de gérer un objet simple (ou même un dictionnaire) qui contient des chaînes, des entiers, des DateTimes et des tableaux de chaînes et d'octets. Lors de la désérialisation, je suis heureux de retrouver un dictionnaire - il n'a pas besoin de créer à nouveau l'objet.
Existe-t-il un code vraiment simple que je pourrais compiler dans mon assemblage pour faire ce travail simple?
J'ai également essayé System.Web.Script.Serialization.JavaScriptSerializer
, mais là où il tombe, c'est le tableau d'octets: je veux encoder en base64 et même enregistrer un convertisseur ne me permet pas de le faire facilement en raison du fonctionnement de l'API (il ne passe pas au nom du champ).
Avez-vous pensé à utiliser [ILMerge] (http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx) pour intégrer JSON.NET dans votre assembly? –
Non, mais merci de me l'avoir fait remarquer. Je pense que cela pourrait être exagéré pour cela, mais cela ressemble à un outil très intéressant et je vais envisager de l'utiliser pour quelque chose d'autre sur lequel je travaille. +1 – EMP
Si les données JSON contiennent une chaîne, il vaut probablement la peine d'utiliser un paquetage comme JSON.NET pour le gérer, plutôt que de rouler le vôtre. Par exemple, comment gérez-vous les espaces dans vos chaînes? Ou des guillemets simples/doubles dans la chaîne? Newlines? –