【发布时间】:2019-09-21 08:01:41
【问题描述】:
在我的应用程序方法中,使用名为GetAllProvince()的方法填充JSON字符串如下,请注意GetAllProvince()是web方法
public string GetAllProvince()
{
NccEntity nccEnti = getLtsLobbyInstance();
DataTable dt = nccEnti.GetAllBranchesAndRegions();
JavaScriptSerializer jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
return jsSerializer.Serialize(dt.Rows.Cast<DataRow>().GroupBy(row => row["RegionId"], row => row, (key, values) => new ProvinceWithBranches
{
Value = key.ToString(),
Province = values.Select(row => row["RegionName"].ToString()).FirstOrDefault(),
Branches = values.Select(row => new BranchItem
{
Value = row["BranchId"].ToString(),
Province = row["BranchName"].ToString(),
IsValid = row["IsTestBranch"].ToString()
})
}));
}
类名为ProvinceWithBranches
public class ProvinceWithBranches
{
public string Value;
public string Province;
public IEnumerable<BranchItem> Branches;
}
类名为BranchItem
public class BranchItem
{
public string Value;
public string Province;
public string IsValid;
}
上述生成JSON字符串的方法如下,
[
{
"Value": "21",
"Province": "Default",
"Branches": [
{"Value": "1108", "Province": "davie", "IsValid": "False"},
{"Value": "1107", "Province": "Ab area109", "IsValid": "False"},
{"Value": "1105", "Province": "Hollywood", "IsValid":"False"},
{"Value": "1105", "Province": "Ft. Lauderdale", "IsValid":"False"}
]
},
{
"Value": "17",
"Province": "East",
"Branches": [
{"Value": "212", "Province": "area109", "IsValid": "False"},
{"Value": "219", "Province": "lauderdale", "IsValid": "False"}
]
},
{
"Value": "24",
"Province": "East11",
"Branches": [
{"Value": "211", "Province": "area108", "IsValid": "False"},
{"Value": "218", "Province": "area109", "IsValid": "False"},
{"Value": "1102", "Province": "area999", "IsValid": "False"}
]
},
{
"Value": "25",
"Province": "N25",
"Branches": [
{"Value": "213", "Province": "davie", "IsValid": "False"},
{"Value": "220", "Province": "area999", "IsValid": "False"},
{"Value": "220", "Province": "areda999", "IsValid": "False"}
]
}
]
现在我的要求是我需要将参数作为GetAllProvince(string searcKey) 传递给该方法,并且基于searcKey 只有相关数据应该被过滤并返回,
如示例 1,
何时应返回 searcKey = Default 以下结果(所有匹配情况应返回根级别或分支级别)
[
{
"Value": "21",
"Province": "Default",
"Branches": [
{"Value": "1108", "Province": "davie", "IsValid": "False"},
{"Value": "1107", "Province": "Ab area109", "IsValid": "False"},
{"Value": "1105", "Province": "Hollywood", "IsValid":"False"},
{"Value": "1105", "Province": "Ft. Lauderdale", "IsValid":"False"}
]
}
]
示例 2,
何时应返回 searcKey = area109 以下结果(所有匹配情况应返回根级别或分支级别)
[
{
"Value": "21",
"Province": "Default",
"Branches": [
{"Value": "1107", "Province": "Ab area109", "IsValid": "False"},
]
},
{
"Value": "17",
"Province": "East",
"Branches": [
{"Value": "212", "Province": "area109", "IsValid": "False"}
]
},
{
"Value": "24",
"Province": "East11",
"Branches": [
{"Value": "218", "Province": "area109", "IsValid": "False"}
]
}
]
我该怎么做,请帮帮我,我在这 2 天里忙得不可开交。非常感谢。
【问题讨论】:
-
您可以控制
nccEnti.GetAllBranchesAndRegions()方法吗?在我看来,也许它正在运行某种 SQL?如果是这样,那可能是插入一些过滤条件的理想位置。所以nccEnti.GetAllBranchesAndRegions(string search),然后在该方法中应用适当的过滤条件。 -
ya
GetAllBranchesAndRegions()运行存储过程的方法。但是我需要通过这个方法过滤数据