Json中的ASP.NET Web API,不需要的引号和反斜杠

时间:2013-10-10 21:19:10

标签: asp.net-mvc web-services asp.net-web-api

NET MVC Web API,我创建了一个Response类,以便All Routes返回相同的响应模式,

[DataContract]
    public class Response
    {
        [DataMember]
        public string ResponseMessage { get; set; }
        [DataMember]
        public int ResponseCode { get; set; }
        [DataMember]
        public object ResponsePayload { get; set; }        
    }

我从所有路由调用APIResponse方法返回Response,每当我在下面的函数的对象responseObj param中传递DataTable或DataSet时,我必须使用ADO.NET DB Access层,:))

private Object APIResponse(object responseObj, string _message = Constants.RESPONSE_MESSAGE_SUCCESS, int code = _RESPONSE_SUCCESS_CODE)
        {

            Response _response = new Response();
            _response.ResponsePayload = responseObj;
            _response.ResponseMessage = _message;
           _response.ResponseCode = code;

            return Newtonsoft.Json.JsonConvert.SerializeObject(_response);
        }

如果我的responseObj param是DataSet类型,那么我会得到不需要的引号和反斜杠(就像在PHP中一样,如果在服务器上启用了Magic Quotes),它会产生无效的JSON, 你能帮我解决这个问题吗,删除这些斜杠,

示例JSON:

"{\"ResponseMessage\":\"Success\",\"ResponseCode\":200,\"ResponsePayload\":{\"StatusList\":[{\"StatusId\":1,\"Status\":\"To Be Dispatched\", ...........

1 个答案:

答案 0 :(得分:1)

你应该定义你喜欢这个

public IEnumerable<string> Get(int id1)

public List<Response> Get( int id1)

而不是

public string Get(int id1)