无法使用WCF REST服务获取JSON值

时间:2014-06-13 07:35:54

标签: jquery json wcf rest

我正在尝试从RESTful服务获取JSON值。

我的服务:

namespace WcfService1
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetUserDetails")]
        string GetUserDetails();   
    }   
}

我从浏览器中获取服务中的值。

enter image description here

但是当我在HTML页面中通过jQuery访问它时。它显示错误。

<script type="text/javascript">
    $(document).ready(function () {
        $('#BtnGetData').click(function () {
            debugger;
            $.ajax({
                type: "GET",
                contentType: "application/json; charset=utf-8",
                url: 'http://localhost:22727/Service1.svc/GetUserDetails',
                data: "{}",
                dataType: "json",
                success: function (data) {
                    $($.parseJSON(data.d)).each(function (index, value) {
                        $("#tbDetails").append("<tr><td>" + value.Name + "</td><td>" + value.Email + "</td><td>" + value.Category + "</td><td>" + value.Mobile + "</td><td>" + value.Message + "</td></tr>");
                    });
                },
                error: function (result) {
                    alert(result);
                }
            });
        });
    });
</script>

我的服务方式:

public string GetUserDetails(string UserName, string Password)
    {
        if (UserName == "Admin" && Password == "123")
        {
            string file = AppDomain.CurrentDomain.BaseDirectory + "\\DataFile.xml";
            DataSet ds = new DataSet();
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            ds.ReadXml(file);
            foreach (DataRow item in ds.Tables[0].Rows)
            {
                row = new Dictionary<string, object>();
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    row.Add(col.ColumnName, item[col]);
                }
                rows.Add(row);
            }
            return serializer.Serialize(rows);
        }
        else
        {
            return "null";
        }
    }

它在控制台中显示以下错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为json的格式不正确

 "[{"Name" :"Nimit","Email:test@test.com"... 

像这样,我已经使用你的ajax调用我的服务它工作正常。所以错误在服务 json不是格式。