我有一个相当简单的问题,出于某种原因,我可以找到使用SO和Google的帮助。 我收到的JSON回复如下:
"{
\"data\": [
{
\"type\": \"gif\",
\"id\": \"FiGiRei2ICzzG\",
\"url\": \"http: //giphy.com/gifs/funny-cat-FiGiRei2ICzzG\",
\"bitly_gif_url\": \"http: //gph.is/1fIdLOl\",
\"bitly_url\": \"http: //gph.is/1fIdLOl\",
\"embed_url\": \"http: //giphy.com/embed/FiGiRei2ICzzG\",
\"username\": \"\",
\"source\": \"http: //tumblr.com\", etc........
所以这是一个标准的JSON,但是带有\ escape字符。 现在我试图删除这些转义字符来解析JSON中的数据。 试过字符串的.replace和其他一些解决方案,但由于某种原因我留下了转义字符.. 谢谢!! 这是我用来执行请求的代码
public static void GetRequest()
{
string sFullURL = "http://api.giphy.com/v1/gifs/search?q=";
string sSearchTerm = "funny+cat";
string sContent;
string sAPIKey = "&api_key=dc6zaTOxFJmzC";
string sLimit = "&limit=1";
string sFullRequest = "http://api.giphy.com/v1/gifs/search?q=funny+cat&api_key=dc6zaTOxFJmzC";
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(string.Format(sFullURL + sSearchTerm + sAPIKey + sLimit));
WebReq.Method = "GET";
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
System.Diagnostics.Debug.WriteLine(WebResp.StatusCode);
System.Diagnostics.Debug.WriteLine(WebResp.Server);
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
sContent = _Answer.ReadToEnd();
sContent = Regex.Replace(sContent, @"\\", "");
}
答案 0 :(得分:4)
看起来你对调试器中的值感到困惑。调试器窗口显示字符串的转义版本。
您可以点击小放大图标在“文本可视化工具”中打开字符串,以查看字符串的实际值。
答案 1 :(得分:-3)
你试图使用常规转义(“\\”)和逐字字符串(@“string”)两次转义\字符。 试试
@Multipart
@POST("/adduserrequestservice")
void addUserRequestService(@Part("checksum") TypedString checksum, @Part("userId") TypedString userId,
@Part("reqType") TypedString requesttype,@Part("reqFormType") TypedString reqFormtype,
@Part("requestFields") List<RequestFields> requestFields,
@Part("timestamp") Long timestamp,retrofit.Callback<RetrieveResponse> callback);
{
"checksum" : "747d23f4333f05c60d57f83ab3648e2e",
"userId" : 1,
"reqType" : "Medical Devices",
"reqFormType" : "General Request",
"requestFields" : [
{
"fieldName" : "xxx",
"fieldValue" : "s3343"
}
],
"timestamp" : 1403477427
}