2011-02-12 3 views

Répondre

1

Je ne pense pas qu'il existe une méthode intégrée pour cela, ce qui signifie que vous devrez écrire du code de sérialisation personnalisé. JsonDeserialize est probablement où vous voulez commencer.

Vous devrez également vous assurer que le code qui consomme le format JSON sait comment gérer deux formats différents - et c'est un véritable désordre. Il peut être plus judicieux d'envoyer simplement les horodatages non formatés (je pense que la valeur par défaut est de les écrire en millisecondes depuis l'époque) et de s'assurer que le code client les formate correctement avant de les afficher à l'utilisateur.

+0

Merci, Mike. Le format est imposé par une API tierce donc je n'ai aucun contrôle dessus. J'ai déjà écrit des sérialiseurs personnalisés pour une seule propriété (en utilisant JsonSerializer), mais cela ne me permet pas d'ajouter ces règles (le format d'un champ dépend de la valeur d'un autre champ). –

1

La réponse de Mike est correcte, sérialiseur en cours (et probablement, désérialiseur) sont des façons évidentes d'aller. Je ne peux pas penser à un soutien plus spécifique pour gérer des cas de co-contraintes comme celui-ci. Pour la désérialisation, vous pouvez également utiliser @JsonCreator pour le constructeur (ou la méthode statique): l'avantage est que vous pouvez définir à la fois l'indicateur booléen et la valeur String à transmettre, il sera donc plus simple d'avoir une gestion personnalisée.

Questions connexes