返回json数据表没有收到数据

时间:2014-03-05 13:52:32

标签: c# json wcf datatable

我有REST服务,该服务返回json序列化DataTable

当我向服务发出请求时,我没有获得数据(“没有收到数据”来自chrome),但是当我将返回类型更改为string并返回一个序列化{{1}的字符串时一切正常(除了我必须解析DataTable字符串)。

Json

//Doesn't Work
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
       UriTemplate = "data")]
public DataTable LoadData2() {

    return JsonQueryDatabase2(VCAPSProduction);
}

如何使用DataTable让我的服务返回Json对象?

1 个答案:

答案 0 :(得分:2)

我最终得到了L.B的建议。

using Newtonsoft.Json; // JsonConvert.SerializeObject

...

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
       UriTemplate = "data?limit={limit}")]
public System.ServiceModel.Channels.Message LoadData_Limited(int limit) {

    if (limit <= 0) { return null; }

    string query = ...;

    try {

        ...

        //Return data from query
        DataTable dt = QueryDatabase(connString, query, parameters);
        string serialized = JsonConvert.SerializeObject(dt);
        return WebOperationContext.Current.CreateTextResponse(serialized);

    } catch {
        return null;
    }
}