我有一个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);
});
});
});
请在这里帮助我。
答案 0 :(得分: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)