3
我有一個REST
服務,它返回一個json
序列化DataTable
。返回json數據表沒有收到數據
當我做對服務的請求我沒有得到任何數據(「無數據receieved」從鍍鉻),但是當我改變返回類型爲string
,並返回一個字符串,它是序列化DataTable
,一切工作正常(除我必須解析字符串Json
)。
//Doesn't Work
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "data")]
public DataTable LoadData2() {
return JsonQueryDatabase2(VCAPSProduction);
}
。
// Works, but returns a json string
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "data")]
public string LoadData2() {
return JsonConvert.SerializeObject(JsonQueryDatabase2(connString));
}
如何讓我的服務返回使用DataTable的Json對象?
這是因爲「對象」你是連載是一個數據表,因此你在另一端的數據表,填充對象的列表,而不是和那個連載,通常是約定。閱讀http://stackoverflow.com/questions/16441880/how-to-return-json-object –
默認情況下,WCF不使用Json.Net。可以使用[this](http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx)來使用Json.Net作爲serialiazer,或者返回' System.ServiceModel.Channels.Message'並像現在這樣用Json.Net填充它。 ('返回WebOperationContext.Current.CreateTextResponse(serializeHere)') –
@Paul我已經得到它返回一個列表,它的工作。謝謝。 – kschieck