Serializzazione in Json con la programmazione a livello di messaggiSerializing in Json with Message Level Programming

WCF supporta la serializzazione dei dati in formato JSON.WCF supports serializing data in JSON format. In questo argomento viene descritto come impostare WCF in modo da serializzare i tipi utilizzando DataContractJsonSerializer.This topic describes how to tell WCF to serialize your types using the DataContractJsonSerializer.

Programmazione di messaggi tipizzatiTyped Message Programming

L'oggetto DataContractJsonSerializer viene utilizzato quando l'oggetto WebGetAttribute o WebInvokeAttribute viene applicato a un'operazione del servizio.The DataContractJsonSerializer is used when the WebGetAttribute or the WebInvokeAttribute is applied to a service operation. Entrambi gli attributi consentono di specificare RequestFormat e ResponseFormat.Both of these attributes allow you to specify the RequestFormat and ResponseFormat. Per utilizzare JSON per le richieste e le risposte, impostarli entrambi su WebMessageFormat.Json.To use JSON for requests and responses set both of these to WebMessageFormat.Json. Per utilizzare JSON, è necessario utilizzare l'oggetto WebHttpBinding che configura automaticamente WebHttpBehavior.In order to use JSON you must use the WebHttpBinding which automatically configures the WebHttpBehavior. Per ulteriori informazioni sulla serializzazione WCF, vedere: la serializzazione e deserializzazione, serializzazione in Windows Communication Foundation.For more information about WCF serialization, see: Serialization and Deserialization, Serialization in Windows Communication Foundation. Per ulteriori informazioni su JSON e WCF vedere An Introduction to servizi RESTfull con WCF, abilitati per JSON con la creazione di servizi WCF in .NET 3.5, e Panoramica di REST in WCF.For more information about JSON and WCF see An Introduction to RESTfull Services with WCF, Creating JSON-enabled WCF Services in .NET 3.5, and Overview of REST in WCF.

Importante

L'utilizzo di JSON richiede gli oggetti WebHttpBinding e WebHttpBehavior che non supportano la comunicazione SOAP.Using JSON requires use of WebHttpBinding and WebHttpBehavior which do not support SOAP communication. Servizi che comunicano con il WebHttpBinding non supportano l'esposizione dei metadati del servizio in modo non sarà in grado di utilizzare la funzionalità Aggiungi riferimento al servizio di Visual Studio o lo strumento da riga di comando svcutil per generare un proxy lato client.Services that communicate with the WebHttpBinding do not support exposing service metadata so you will not be able to use Visual Studio’s Add Service Reference functionality or the svcutil command-line tool to generate a client-side proxy. Per ulteriori informazioni, come è possibile richiamare a livello di programmazione di servizi che utilizzano WebHttpBinding, vedere come utilizzare i servizi REST con WCF.For more information how you can programmatically call services that use WebHttpBinding, see How to Consume REST Services with WCF.

Programmazione di messaggi non tipizzatiUntyped Message Programming

Quando si utilizzano direttamente oggetti Message non tipizzati, è necessario impostare in modo esplicito le proprietà nel messaggio non tipizzato per serializzarlo come JSON.When working directly with untyped Message objects, you must explicitly set the properties on the untyped message to serialize it as JSON. Nel frammento di codice seguente viene illustrato come eseguire questa operazione.The following code snippet shows how to do this.

 Message response = Message.CreateMessage(  
                  MessageVersion.None,    // No SOAP message version  
                             "*",                     // SOAP action, ignored since this is JSON  
                             "Response string: JSON format specified", // Message body  
                             new DataContractJsonSerializer(typeof(string))); // Specify DataContractJsonSerializer  
      response.Properties.Add( WebBodyFormatMessageProperty.Name,   
                    new WebBodyFormatMessageProperty(WebContentFormat.Json)); // Use JSON format  

Vedere ancheSee Also

Integrazione AJAX e supporto JSONAJAX Integration and JSON Support
Serializzazione JSON autonomaStand-Alone JSON Serialization
Serializzazione JSONJSON Serialization