0

我有一个 JSON 列出数据库中的值。下面是数据库中 2 行的 JSON 数据。

[{"Name":"P1","Description":"pd1","Value":"v1","Attribute":"a1"},{"Name":"P1","Description":"pd1","Value":"v2","Attribute":"a2"}]

数据库值是左连接查询的结果。只有“值”和“属性”字段不同。我可以将该字段附加到 JSON 而不是多组记录吗?我知道有“推动”来做到这一点,但我不知道在我的代码中的何处以及如何使用它。下面是从 db 获取值并序列化值的代码。

GetProfileDataService GetProfileDataService = new BokingEngine.MasterDataService.GetProfileDataService();
IEnumerable<ProfileData> ProfileDetails = GetProfileDataService.GetList(new ProfileSearchCriteria { Name = strProfileName });
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string strSerProfileDetails = javaScriptSerializer.Serialize(ProfileDetails);
context.Response.ContentType = "text/json";
context.Response.Write(strSerProfileDetails);

下面是我的getJSON

$(document).ready(function () {
    $.getJSON('ProfileHandler.ashx', { 'ProfileName': 'Profile 1' }, function (data) {
        $.each(data, function (k, v) {
            alert(v.Attribute+' : '+v.Value);               
        });            
    });
});

请在这里帮助我。

4

1 回答 1

0

您可以做几件事。

将值和属性存储为数组:

[{"Name":"P1","Description":"pd1","Value":["v1", "v2"],"Attribute":["a1", "a2"]}]

或者将它们存储为“符号”分隔的字符串:

[{"Name":"P1","Description":"pd1","Value":"v1;v2"],"Attribute":"a1;a2"]}]

为了使用第一种情况,您必须尝试弄清楚如何格式化 ProfileDetails 以便让 javaScriptSerializer.Serialize 正确解析它。您可能必须首先转换您的数据才能使其正常工作(即将属性转换为数组)。

对于第二种情况,您可以修改您的 GetProfileDataService.GetList 方法,以便将值和属性合并到符号分隔的字符串中(如下所示:GROUP BY to combine/concat a column

于 2013-03-11T13:18:44.277 回答