c#-4.0 - 如何从 JSON 字符串中删除转义字符

标签 c#-4.0 asp.net-web-api json.net

我调用了一个 REST API,返回了以下 JSON 字符串:

"{\"profile\":[{\"name\":\"city\",\"rowCount\":1,\"location\": ............

在反序列化之前,我尝试使用以下代码删除转义字符:
 jsonString = jsonString.Replace(@"\", " ");

但是当我反序列化它时,它会抛出一个 input string was not in a correct format :
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);

以下是完整代码:
public static SearchRootObject obj()
    {
        String url = Glare.searchUrl;
        string jsonString = "";

        // Create the web request  
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

        // Get response  
        var response = request.GetResponse();
        Stream receiveStream = response.GetResponseStream();

        // Pipes the stream to a higher level stream reader with the required encoding format.
        StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
        jsonString = jsonString + readStream.ReadToEnd();
        jsonString = jsonString.Replace(@"\", " ");

        // A C# object representation of deserialized JSON string 
        SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);
        return obj;
    }

最佳答案

切换使用后JavaScriptSerializer()为了反序列化 JSON 字符串,我意识到我有一个 int类型 property在我的对象中用于 JSON 字符串中的十进制值。我改了intdouble ,这解决了我的问题。两者 JsonConvert.DeserializeObject<>JavaScriptSerializer()处理转义字符。无需删除转义字符。
我替换了以下代码:

jsonString = jsonString.Replace(@"\", " ");        
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);
return obj;

和:
return new JavaScriptSerializer().Deserialize<SearchObj.RootObject>(jsonString);

关于c#-4.0 - 如何从 JSON 字符串中删除转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979508/

相关文章:

c# - 如何防止阿拉伯字符被AntiXssEncoder重新编码?

c# - JToken 不包含“长度”的定义

c# - 通过属性应用时如何将多个参数传递给 JsonConverter?

r - 是否可以从 C# 中调用用户定义的(自定义)R 函数?

c#-4.0 - Exchange Web 服务 - 更新联系人时出现错误代码 ErrorIn CorrectUpdatePropertyCount

c#-4.0 - 如何在 T4 中使用 linq 扩展方法

c# - 编码的 UI 测试现在收到有关未找到 Newtonsoft.json 的错误

c#-4.0 - C# 一种在变量名中引用非法字符的方法?

Asp.net Web API : No action was found on the controller

javascript - 一种方法需要 HttpGet 属性,但另一种方法不需要