2016-05-16 75 views
1

嗨,我有get方法返回俗JSON格式的Web API反斜杠:为什么JSON响应包括网页API响应

问题:为什么JSON值包含“/字符

返回:

{ 
    "success": true, 
    "message": "", 
    "code": 200, 
    "data": "\"{\"token\":\"E013D7050A8C4447989651D29AD3E637\"}\"" 
} 

我返回代码:

return new HttpResponseBody(true, message, (int)System.Net.HttpStatusCode.OK, data != null ? Newtonsoft.Json.JsonConvert.SerializeObject(data) : data); 

我的效应初探类;:

public class HttpResponseBody 
{ 
    public bool success; 
    public string message; 
    public int code; 
    public object data; 

    public HttpResponseBody(bool success, string message, int code, object data) 
    { 
     this.success = success; 
     this.message = message; 
     this.code = code; 
     this.data = data; 
    } 

    public static HttpResponseBody Success(object data = null, string message = "") 
    { 
     return new HttpResponseBody(true, message, (int)System.Net.HttpStatusCode.OK, data != null ? Newtonsoft.Json.JsonConvert.SerializeObject(data) : data); 
    } 

    public static HttpResponseBody Error(System.Net.HttpStatusCode code, string message) 
    { 
     return new HttpResponseBody(false, message, (int)code, null); 
    } 
} 
+0

它逃避字符串中的引号。 –

回答

3

您正在序列化两次相同的对象。当您第一次手动序列化使用它:

Newtonsoft.Json.JsonConvert.SerializeObject(data) 

然后您返回另一个对象,框架本身会序列,这将导致其逃避叫data字符串对象中的字符。

不要手动序列化您的数据,让框架做繁重:

return new HttpResponseBody(true, message, (int)System.Net.HttpStatusCode.OK, data); 
0

逃离报价

有反斜杠,逃避字符串中的引号。否则,引号将像正常一样行动并结束/开始一个字符串。