如何从一个JSON字符串删除转义字符 [英] How to remove escape characters from a JSON String
问题描述
我打电话用下面的JSON字符串一个REST API返回:
{\\轮廓\\:[{\\名称\\:\\城\\,\\rowCount等\\:1,\\位置\\:.. ..........
我试过之前,我反序列化具有以下code删除转义字符:
jsonString = jsonString.Replace(@\\,);
但是当我反序列化,它抛出一个输入字符串是不是在一个correctt格式
:
SearchRootObject的obj = JsonConvert.DeserializeObject< SearchRootObject>(jsonString);
以下是完整code:
公共静态SearchRootObject OBJ()
{
字符串URL = Glare.searchUrl;
字符串jsonString =; //创建web请求
HttpWebRequest的要求= WebRequest.Create(URL)为HttpWebRequest的; //获取响应
变种响应= request.GetResponse();
流receiveStream = response.GetResponseStream(); //管道流与所需的编码格式更高的水平流读取器。
StreamReader的readStream =新的StreamReader(receiveStream,Encoding.UTF8);
jsonString = jsonString + readStream.ReadToEnd();
jsonString = jsonString.Replace(@\\,); // C#的对象,再反序列化的JSON字符串的presentation
SearchRootObject的obj = JsonConvert.DeserializeObject< SearchRootObject>(jsonString);
返回OBJ;
}
切换到使用后的JavaScriptSerializer()
反序列化JSON字符串,我意识到,我有一个 INT
键入我的对象属性
在JSON字符串的十进制值。我换 INT
到双击
,这解决了我的问题。无论 JsonConvert.DeserializeObject<>
和的JavaScriptSerializer()
处理转义字符。有没有必要删除转义字符。
我取代了以下codeS:
jsonString = jsonString.Replace(@\\,);
SearchRootObject的obj = JsonConvert.DeserializeObject< SearchRootObject>(jsonString);
返回OBJ;
使用:
返回新的JavaScriptSerializer()反序列化< SearchObj.RootObject>(jsonString);
I called a REST API with the following JSON string returned:
"{\"profile\":[{\"name\":\"city\",\"rowCount\":1,\"location\": ............
I tried to remove escape character with the following code before I deserialize it:
jsonString = jsonString.Replace(@"\", " ");
But then when I deserialize it, it throws an input string was not in a correctt format
:
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);
The following is the complete code:
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;
}
After switching to use JavaScriptSerializer()
to deserialize JSON string , I realized that I have an int
type property
in my object for a decimal value in the JSON string. I changed int
to double
, and this solved my problem. Both JsonConvert.DeserializeObject<>
and JavaScriptSerializer()
handle escape character. There's no need to remove escape character.
I replaced the following codes:
jsonString = jsonString.Replace(@"\", " ");
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);
return obj;
With:
return new JavaScriptSerializer().Deserialize<SearchObj.RootObject>(jsonString);
这篇关于如何从一个JSON字符串删除转义字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!