在所有json属性之前,C#api响应返回反斜杠

时间:2013-10-01 00:04:38

标签: c# json windows-phone-8 webclient

当我从此回复时:

    public IEnumerable<Organisation> GetAll()
    {
        string requestUrl = BlaBla.APIURL + "/org/";
        //string response = await postRequest.AuthenticatedGetData(requestUrl, BlablaDataContext.Contract.AccessToken).Result;
        AuthenticatedGetData(requestUrl, BlaBla.Contract.AccessToken);

        IEnumerable<Organisation> organisations = new Organisation[] {};
        return organisations;
    }

    public override void WebClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        string response = e.Result;
        using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(response)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Contract));
            Contract contract = (Contract)serializer.ReadObject(stream);
        }
    }

... string response = e.Result();

返回以下内容:

response"[{\"status\":\"active\",\"segment\":null,\"contract_status\":\"none\",\"name\":\"Projects with James\",\"rights\...

如何阻止这种情况发生,因为我无法使用http://json2csharp.com/将我的json转换为csharp对象......

我的webclient看起来像这样:

abstract public class PostRequest
{
    public void AuthenticatedGetData(string url, string accessToken)
    {
        WebClient client = new WebClient();
        //client.Headers["Content-Type"] = "application/json";
        client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(this.WebClient_DownloadStringCompleted);
        client.DownloadStringAsync(new Uri(url + "?oauth_token=" + accessToken));
    }

    public abstract void WebClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e);
}

2 个答案:

答案 0 :(得分:3)

你确定字符串中实际上有反斜杠,而不是Visual Studio的可视化工具吗?如果将结果打印到文件中,它看起来像什么?

赠品是字符串以" ...

开头

答案 1 :(得分:0)

我的朋友出现反斜杠,因为你将它转换为字符串!使用:http://james.newtonking.com/json这是最好的(在我看来)Json lib for WP。它非常易于使用并且具有很大的功率。