【问题标题】:How to parse json data from Dataset using JsonConvert SerializeObject如何使用 JsonConvert SerializeObject 从数据集中解析 json 数据
【发布时间】:2016-09-30 09:08:48
【问题描述】:

我正在使用 WCF 服务与数据库中的数据进行交互以获取数据和发布数据。为此使用 jquery ajax。我正在从 WCF 服务获取数据。但我无法解析 json 数据。我尝试了大多数方法。但我达不到。

WCF 服务:

[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebGet(UriTemplate = "/GetUserDetails?uname={uname}",
    BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json)]
    string GetUserDetails(string userName);
}

[AspNetCompatibilityRequirements
(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class Service : IService
{
    public string GetUserDetails(string userName)
    {
        SqlParameter[] sqlparams = new SqlParameter[1];
        DataLayer dal = new DataLayer();
        DataSet ds = new DataSet();

        sqlparams[0] = new SqlParameter("@UserName", userName);

        ds = dal.GetDataSet("dbConn", "GetUserDetailsSP", sqlparams);

        string jsonValue = JsonConvert.SerializeObject(ds);
        return jsonValue; ;
    }
}

阿贾克斯:

        $.ajax({                 
                type: 'GET',
                contentType: 'application/json; charset=utf-8',
                url: './Services/Service.svc/GetUserDetails',
                data: { uname: 'e0205' },
                async: false,
                dataType: 'json',
                success: function (response) {
                    //var testMsg = $.parseJSON(response);
                    alert(response.GetUserDetailsResult);
                },
                error: function (error) {
                    alert(error);
                }
            });

Json 数据:

{"GetUserDetailsResult":"{\"Table\":[{\"UserName\":\"E0205\",\"EmpName\":\"Manjeet\",\"LocationName\":\"Gurgaon\",\"Designation\":\"Analyst\"}]}"}

我正在努力在这里用 ajax 解析数据。

【问题讨论】:

    标签: jquery asp.net json ajax wcf


    【解决方案1】:

    因为我无法看到服务实际返回的响应

    我建议尝试:

    1) JSON.parse(response.data);

    因为你的dataType:'json'

    你可以简单地使用

    ...
    success: function (response) {
        console.log(response.GetUserDetailsResult.Table[0]);
    },
    

    【讨论】:

    • 我已经尝试过你提到的两种方式。我只得到错误。任何其他可能的方式
    • 使用 firebug 在 mozilla firefox 上运行应用程序...并在控制台中发布您获得的内容
    • 获取 Uncaught TypeError: 无法读取未定义的属性“用户名”
    • 你在你的成功函数中使用了response.GetUserDetailsResult.Table.UserName吗?将console.write(response); 放入成功函数console.write(error) 放入错误函数中,然后发布控制台结果
    • console.write(response); 放入成功函数console.write(error); 放入错误函数中,然后发布控制台结果.....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2015-12-11
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多