I MA Utilisez JSON.NET 'JSON.NET pour sérialiser certains et grémés d'objets à JSON. Les objets ont un ensemble de propriétés communs mais ont également une propriété méta qui est un dictionnaire
lors de la sérialisation, je souhaite que les paires de la valeur de clé soient ajoutées à mon objet JSON comme si elles sont les propriétés de niveau racine, comme celle-ci ... p> pas comme ceci: p> {
id: 1,
name:'jeff',
meta:{
food:'spinch',
spoon: 'ýes'
}
}
3 Réponses :
Vous pouvez le faire en créant votre propre exemple ici -
http: / /www.lostechnies.com/blogs/rhouston/archive/2008/02/25/a-custom-converter-for-json-net.aspx p> jsonconverter code>, puis ajoutant un attribut à la classe que vous souhaitez sérialiser.
[JSONCONVERTER (typeOf (myconverter))] code> p>
Ou simplement utiliser KeyValuePaireconverter James.Newtonking.com/projects/json/jelp / html / ...
Pouvez-vous développer ce bassfriend - comment utilisez-vous cela dans une classe? Souhaitez-vous hériter de cela et transmettez-vous dans toutes les propriétés de la classe plus le dictionnaire?
Mais pour fusionner les propriétés de la classe au même niveau que les clés et les valeurs que l'OP vous a demandé, vous devrez faire quelque chose de plus, n'est-ce pas?
Vous pouvez utiliser Le fichier de données .NET DatacontractjsonSerializer < / a>. p>
Pour la sérialisation personnalisée, voir: p>
Un avantage d'utiliser Un autre avantage (comparé à avoir à faire la sérialisation personnalisée contre un sac de propriété, ALA KeyValuePaireConverter ) est que vous devez ajouter uniquement des attributs aux propriétés de vos classes (le type réel et le type de substitution) et vous pouvez écrire tout votre code de conversion / personnalisé directement par rapport à ces types. Cela conserve votre code de code supérieur et permet au cadre de traiter le mécanisme de transport exact. P> idatacontranctsurrogate code> (comparé à l'ajout simplement des propriétés à votre classe pour la sérialisation) est que vous n'avez pas à mélanger les propriétés réelles et les propriétés de sérialisation ensemble dans la même classe. P >
Si votre dictionnaire est une chaîne code> to voir Comment sérialiser un dictionnaire dans le cadre de son Objet parent utilisant json.net . P> p> objet code> Dictionnaire peut simplement utiliser l'attribut
[jsonextensiondata] code>:
Vous pouvez jeter un coup d'œil sur cette duplicate possible: Stackoverflow.com/questions/ 4557220 / ...