您好我有一个带有get方法的web api并返回custum json格式:
问题:为什么json值包含“/ characters
返回:
{
"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);
答案 1 :(得分:0)
反斜杠正在转义字符串中的引号。否则,引号将正常运行并结束/开始一个字符串。