資料傳輸格式 (ADO.NET 資料服務架構)
ADO.NET 資料服務架構支援採用多種資料格式的 HTTP 要求和回應來配合各種用戶端代理程式。目前,ADO.NET 資料服務架構可以用 JavaScript 物件標記法 (JavaScript Object Notation,JSON) 和原子發行通訊協定 (Atom Publishing Protocol,AtomPub) 來表示資料。
預設表示格式為 Entity Data Model (EDM) 與 AtomPub XML 語法之固定對應所產生的 AtomPub。使用 ID 'ADATUMCORP'
來定址 Customer
的 URI 為:
http://myserver/data.svc/Customers('ADATUMCORP')
此資料服務會使用此處所示的裝載回應:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<entry xml:base="http://myserver/data.svc/"
xmlns:ads="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:adsm="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
adsm:type="NorthwindModel.Customers"
xmlns="http://www.w3.org/2005/Atom">
<id>http://myserver/data.svc/Customers('ADATUMCORP')</id>
<updated />
<title />
https://localhost:61243/nw.svc/Customers('ADATUMCORP') <author>
<name />
</author>
<link rel="edit" href="//myserver/data.svc/Customers('ADATUMCORP')"
title="Customers" />
https://localhost:61243/nw.svc/Customers('ADATUMCORP')
<content type="application/xml">
<ads:CustomerID>ADATUMCORP</ads:CustomerID>
<ads:CompanyName>A. Datum Corporation</ads:CompanyName>
<ads:ContactName>Lisa Andrews</ads:ContactName>
<ads:ContactTitle>Sales Representative</ads:ContactTitle>
<ads:Address>Obere Str. 57</ads:Address>
<ads:City>Berlin</ads:City>
<ads:Region ads:null="true" />
<ads:PostalCode>12209</ads:PostalCode>
<ads:Country>Germany</ads:Country>
<ads:Phone>030-0074321</ads:Phone>
<ads:Fax>030-0076545</ads:Fax>
</content>
<link rel="related" title="Orders"
href="Customers('ADATUMCORP')/Orders"
type="application/xml;type=feed" />
<link rel="related" title="CustomerDemographics"
href="Customers('ADATUMCORP')/CustomerDemographics"
type="application/xml;type=feed" />
</entry>
上述範例中的 Customer
實體同時包含具有基本值 (例如,指派給 CompanyName
的字串值) 的屬性以及指向其他資源 (例如 Orders
) 的屬性。
此用戶端代理程式會依據 HTTP 要求中的 Accept 標頭來指定資料傳輸的格式。先前的要求使用了 application/atom+xml。透過將 Accept 標頭設定為 application/json
,用戶端代理程式就會取得採用 JSON 格式的下列結果:
{
"d":{
__metadata: {
uri: "Customers(\'ADATUMCORP\')",
type: "NorthwindModel.Customers"
},
CustomerID: "ADATUMCORP",
CompanyName: "A. Datum Corporation",
ContactName: "Lisa Andrews",
ContactTitle: "Sales Representative",
Address: "Obere Str. 57",
City: "Berlin",
Region: null,
PostalCode: "12209",
Country: "Germany",
Phone: "030-0074321",
Fax: "030-0076545",
Orders: {
__deferred: {
uri: "Customers(\'ADATUMCORP\')/Orders"
}
}
}
}
雖然在語意上相等,不過大部分 JSON 版本都會輕易地與 JavaScript 環境 (例如 AJAX 應用程式) 整合。
![]() |
---|
此裝載包含在 HTTP 要求的固定 "d" 屬性內部,以便減少不必要使用 ADO.NET 資料服務所建立之 JSON 裝載的次數。 |
如果用戶端代理程式正在發出 PUT 或 POST 要求,此要求的裝載可能會採用任何支援的資料格式。用戶端代理程式必須透過將 Content-Type
標頭設定為適當的 MIME 類型,指出要求的資料服務格式。如需詳細資訊,請參閱 HttpWebRequest PUT (ADO.NET 資料服務架構) 和 HttpWebRequest POST (ADO.NET 資料服務架構)。
另請參閱
概念
包含統一 URI 的簡單資料定址配置 (ADO.NET 資料服務架構)
HttpWebRequest GET (ADO.NET 資料服務架構)
.NET 用戶端程式庫 (ADO.NET 資料服務架構)