C# 返回<;T>;json的字符串

C# 返回<;T>;json的字符串,c#,.net,json,C#,.net,Json,这让我很沮丧,谷歌现在不是我的朋友 我有一个GET方法返回参数T public T GET(string path, string filter = "", string select = "") { //Check for accesstoken oAuthHelper.GetAccessToken(); //request token var restclient = new RestClient(_url);

这让我很沮丧,谷歌现在不是我的朋友

我有一个GET方法返回参数T

public T GET(string path, string filter = "", string select = "")
    {
        //Check for accesstoken
        oAuthHelper.GetAccessToken();

        //request token
        var restclient = new RestClient(_url);
        RestRequest request = new RestRequest(string.Format("api/v1/{1}/{0}", path, Global._DIVISION)) { Method = Method.GET };

        request.AddHeader("Accept", "application/json");
        request.AddHeader("Content-Type", "application/text");

        //GUID FILTER"
        //string.Format("ID eq guid'{0}'",  "6526d916-173b-4c23-b3da-068c70d6a867")

        if (!string.IsNullOrEmpty(filter))
            request.AddParameter("$filter", filter, ParameterType.QueryString);

        if (!string.IsNullOrEmpty(select))
            request.AddParameter("$select", select, ParameterType.QueryString);

        request.AddParameter("Authorization", string.Format("Bearer " + Global._ACCESTOKEN),
        ParameterType.HttpHeader);

        var tResponse = restclient.Execute(request);
        var responseJson = tResponse.Content;



        JObject obj = JObject.Parse(responseJson);

        JArray categories = (JArray)obj["d"]["results"];

        if (categories.Count == 0)
        {
            return default(T);
        }

        string JSON = categories.ToString();

        return JsonConvert.DeserializeObject<T>(JSON);
    }
当我将其作为列表返回时,它将起作用 但就像输入字符串一样,它会给出eror

T是字符串类型,我只想返回纯JSON数据

            //HttpClientWrapper
        using (var client = new HttpClientWrapper<string>())
        {
            var data = client.GET(_URL, null, null);
            return data.ToString();
        }
如果您想要纯JSON数据,为什么要调用
反序列化对象

听起来你想要这样的东西:

...
string JSON = categories.ToString();

// exit early, if we want the plain JSON data
if (typeof(T) == typeof(string))
    return (T)(object)JSON;

return JsonConvert.DeserializeObject<T>(JSON);
。。。
字符串JSON=categories.ToString();
//如果我们想要纯JSON数据,请尽早退出
if(typeof(T)=typeof(string))
返回(T)(object)JSON;
返回JsonConvert.DeserializeObject(JSON);

双重强制转换
(T)(object)
是必要的,因为我们知道
T
是字符串类型,但编译器不是。

是的,这就是我要找的!我非常接近,但没有做到这一点。搜索google和stack并没有给我一个好的答案!谢谢你!您不应该尝试将JSON反序列化为字符串。JSON已经是一个字符串。
...
string JSON = categories.ToString();

// exit early, if we want the plain JSON data
if (typeof(T) == typeof(string))
    return (T)(object)JSON;

return JsonConvert.DeserializeObject<T>(JSON);