10
votes

WCF, publication des données JSPEZIZES

J'ai un type complexe: xxx

J'ai alors un service Web de WCF reposant qui l'a dit: xxx

Le côté du navigateur i jsonized mon objet CustomClass à on ressemble à: xxx

i soumettez les données w / jQuery en utilisant $ .ajax afin que je puisse définir manuellement le type de contenu sur "Application / JSON "et quand il soumet, le post-collaboration ressemble à xxx

i obtenir l'erreur suivante:

Le serveur a rencontré une erreur de traitement de la demande. Le message d'exception est 'là Un élément de démarrage de la vérification des erreurs était l'objet de type myassembly.customclass. Rencontré inattendu caractère 'c'. '. Voir les journaux du serveur pour plus de détails. La trace de la pile d'exception est la suivante: chez System.Runtime.Serialization.xmlobjectSerializer.SstartObjectHandleExceptions (XMLReaderDelegator Reader) à System.Runtime.Sériialization.json.datacontractJsonSonerializer.SstartObject (XmblondictionaryReader lecteur) chez System.ServiceModel.Dispatcher.SingleBodyParameMessageFormather.readObject (message message) chez System.ServiceModel.Dispatcher.SingleBodyParameMessageFormatter.Desérializequest (message de message , Paramètres d'objet []) au système.servicemodel.dispatcher.demultitiplexingdispatchMessageformatter.deserializequest (message message, objet [] paramètres) chez System.ServiceModel.Dispatcher.URImplateSpatchformatter.Deserializequest (message de message , Paramètres d'objet []) sur system.servicemodel.dispatcher.comPositedispatchformatter.deserializequest (message de message, objet [] paramètres) à System.Servicemodel.Dispatcher.DispatchOrleryRuntime.DeserializeInputs (MessagerPC et RPC) à System.ServiceModel.Dispatcher.DispatchOperlerationRuntime.invokebegin (MessagerPC et RPC) à System.ServiceModel.Dispatcher.ImmmutAftSapatchRuntime.ProcessMessage5 (MessagerPCC & RPC) Au System.ServiceModel.Dispatcher.immmutAftActachRuntime.ProcessMessage4 (MessagerPCC & RPC) à System.ServiceModel.Dispatcher.ImmmutableDispatchRuntime.ProcessMessage3 (MessagerPCC & RPC) chez System.ServiceModel.Dispatcher.immmutAftSpatchRuntime.ProcessMessage2 (MessagerPCC & RPC) à System.ServiceModel.Dispatcher.ImmmutAftInpatchRuntime.ProcessMessage1 (MessagerPCC & RPC) sur system.servicemodel.dispatcher.messagerpc.process (booléen isopérationcontextset)

J'ai essayé d'envelopper mes données Json'ized ... J'ai essayé d'utiliser $ .post pour envoyer le message (mais cela ne fait pas Définissez le contenu de l'application / JSON pour que le WebService ne comprenne pas) .. toutes idées?


0 commentaires

3 Réponses :


0
votes

0 commentaires

3
votes

Donc, le problème que vous rencontrez est une erreur de sérialisation. Wcf veut voir le nom des propriétés dans le JSON enveloppé avec ""

donc je viens de courir dans la même erreur où xxx

n'a pas fonctionné mais xxx

travaille

J'espère que cela aide quelqu'un d'autre dehors


0 commentaires

4
votes

Le problème que vous avez échappé à l'objet correctement, mais lorsque vous construisez un objet JSON complexe dans la méthode de Post JQuery, vous n'êtes pas échapper. Donc, vous avez besoin d'un objet d'évacuation de tout ce que ceci: "{\" personnalisé \ ": \" {foo: \ "hello \", barre: 2} \ "}" (Je n'ai pas essayé moi-même, mais devrait travailler), ou (probablement meilleure solution) Utilisez json.stringify ({personnalisé: myClass})

WCF est vraiment sensible aux objets JSON qu'il reçoit pour la sérialisation.


0 commentaires