Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il formato JSON utilizzato da ADO.NET Data Services include i protocolli per la serializzazione dei dati applicati a tutte le risorse accessibili tramite il servizio.
Regole di serializzazione comuni a tutte le risorse
In questo argomento sono elencate le regole di serializzazione comuni a tutte le risorse di ADO.NET Data Services.
Nota |
|---|
Molte complessità di serializzazione possono essere ridotte mediante una libreria che consente di eseguire la conversione da e verso il formato JSON. Per ulteriori informazioni, vedere CodePlex. |
Valori Null
Tutti i valori Null devono essere rappresentati utilizzando il valore letterale 'null' JSON.
Set di entità
Un set di entità deve essere rappresentato come una matrice di oggetti JSON, con un oggetto per ogni istanza del tipo di entità all'interno del set.
Un set di entità vuoto deve essere rappresentato come una matrice JSON vuota, ovvero una matrice con zero elementi.
Tipo di entità
Un tipo di entità deve essere serializzato come un oggetto JSON.
Ogni proprietà del tipo deve essere rappresentata come una coppia nome/valore all'interno dell'oggetto. Nella coppia nome/valore, il nome corrisponde al nome della proprietà e il valore è il valore della proprietà. L'ordine nel quale le proprietà sono visualizzate all'interno di un oggetto non è importante.
La serializzazione JSON di un'istanza del tipo di entità deve includere una proprietà denominata
__metadata. Questa proprietà non è di tipo dati e corrisponde a una convenzione definita in questo protocollo per specificare i metadati per una determinata istanza di un tipo. Il valore della proprietà__metadatacontiene due proprietà:urietype. La proprietàurideve essere un URI che identifica l'istanza del tipo di entità corrente. Più specificatamente, l'URI deve essere relativo all'URI richiedente dopo avere rimosso l'ultimo segmento di percorso non vuoto. Il valore della proprietà'Type'deve essere il nome completo dello spazio dei nomi, ad esempionamespaceName.typeName, del tipo che rappresenta l'istanza del tipo di entità nel server. La proprietà__metadatapuò contenere una proprietàetag. Se l'entità dispone di una proprietàetagdefinita, la proprietàetagdeve essere presente.Se il tipo di entità rappresentato dall'oggetto JSON fa parte di una gerarchia di ereditarietà, deve essere inclusa la proprietà
Type. In caso contrario, la proprietà'Type'è facoltativa.Per ulteriori informazioni su quando sia necessaria, facoltativa o vietata la presenza dei parametri
URIetype, vedere Requisiti HTTP comuni.
Tipo complesso
Un tipo complesso deve essere serializzato come un oggetto JSON.
Ogni proprietà del tipo complesso deve essere rappresentata come una coppia nome/valore all'interno dell'oggetto JSON. Nella coppia nome/valore, il nome corrisponde al nome della proprietà e il valore è il valore della proprietà. L'ordine nel quale le proprietà sono visualizzate all'interno di un oggetto non è importante.
Proprietà di navigazione e collegamento
La serializzazione delle proprietà di navigazione e collegamento sono posticipate per impostazione predefinita. Quando il contenuto è posticipato, la proprietà
urisotto l'elemento__deferrednon contiene l'URI canonico. Per informazioni sull'espansione della proprietà, vedere Contenuto posticipato (JASON).Poiché le proprietà di navigazione e collegamento rappresentano un'associazione a un set di entità correlato, la serializzazione di una proprietà di navigazione segue le stesse regole dei set di entità con l'eccezione seguente:
- L'elemento XML di livello superiore deve corrispondere al nome della proprietà di navigazione o collegamento anziché al nome di un set di entità.
Proprietà
Una proprietà può essere serializzata in due modi: con un tag di wrapping o in una forma non decorata senza tag di wrapping.
Per utilizzare la serializzazione di una proprietà in JSON con tag di wrapping:
La serializzazione è rappresentata come una coppia nome/valore in un oggetto JSON, ad esempio,
{<propertyname>:<propertyvalue>}.La tabella riportata in questo documento illustra come viene formattato ogni tipo primitivo definito dal modello EDM (Entity Data Model) mediante JSON. La colonna di serializzazione JSON definisce come viene serializzato il valore di una proprietà.
Per utilizzare la serializzazione di una proprietà in JSON senza tag di wrapping (URI che terminano con /$value):
In questo formato viene serializzato solo il valore della proprietà. La colonna di serializzazione JSON della tabella seguente specifica come viene serializzato ogni tipo primitivo in questo formato.
Se il tipo ha valore Null o vuoto, questo formato non contiene serializzazioni del valore della proprietà. In questi casi il modello di interazione del protocollo deve segnalare l'esistenza di tali valori.
| Tipo primitivo EDM | Serializzazione JSON | Rappresentazione con valore Null (solo con tag di wrapping) | Rappresentazione con valore vuoto (solo con tag di wrapping) |
|---|---|---|---|
Edm.Binary |
|
Non disponibile |
matrice di dimensioni 0 |
Edm.Boolean |
true | false |
Non disponibile |
Non disponibile |
Edm.Byte |
|
Non disponibile |
Non disponibile |
Edm.DateTime |
|
Non disponibile |
Non disponibile |
Edm.Decimal |
|
Non disponibile |
Non disponibile |
Edm.Double |
|
Non disponibile |
Non disponibile |
Edm.Guid |
|
Non disponibile |
Non disponibile |
Edm.Int16 |
|
Non disponibile |
Non disponibile |
Edm.Int32 |
|
Non disponibile |
Non disponibile |
Edm.Int64 |
|
Non disponibile |
Non disponibile |
Edm.SByte |
|
Non disponibile |
Non disponibile |
Edm.Single |
|
Non disponibile |
Non disponibile |
Edm.String |
|
null |
"" |
Edm.UInt16 |
|
Non disponibile |
Non disponibile |
Edm.UInt32 |
|
Non disponibile |
Non disponibile |
Edm.UInt64 |
|
Non disponibile |
Non disponibile |
System.Data.Linq.Binary |
|
Non disponibile |
matrice di dimensioni 0 |
System.Data.Linq.XElement |
|
null |
"" |
Vedere anche
Concetti
Formato JSON (framework di ADO.NET Data Services)
Contenuto posticipato (framework di ADO.NET Data Services in JSON)
Framework di ADO.NET Data Services
Nota